EventLoop基本原理

EventLoop是一种计算机运行机制,可以解决JavaScript单线程带来的一些问题。

EventLoop是一种程序结构,用于等待发送消息和事件(a programming construct that waits for and dispatches messages or events)。

JavaScript的问题

单线程语言,所有任务都在一个线程上完成,因为一个进程一次只能执行一个任务,只好等前面的任务执行完了,再执行后面的任务。一旦遇到大量任务或者遇到一个耗时的任务,网页就会出现"假死",因为JavaScript停不下来,也就无法响应用户的行为。

线程结构

  • 主线程:负责运行程序本身;
  • EventLoop线程(消息线程):负责主线程与其它线程(各种I/O操作)进行通信;

异步模式

2013102004.png

异步模式(asynchronous I/O)又称非堵塞模式(non-blocking mode)。
单线程模型虽然对JavaScript构成了很大的限制,但也因此使它具备了其他语言不具备的优势。如果部署得好,JavaScript程序是不会出现堵塞的,这就是为什么node.js平台可以用很少的资源,应付大流量访问的原因。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容