EventLoop是一种计算机运行机制,可以解决JavaScript单线程带来的一些问题。
EventLoop是一种程序结构,用于等待发送消息和事件(a programming construct that waits for and dispatches messages or events)。
JavaScript的问题
单线程语言,所有任务都在一个线程上完成,因为一个进程一次只能执行一个任务,只好等前面的任务执行完了,再执行后面的任务。一旦遇到大量任务或者遇到一个耗时的任务,网页就会出现"假死",因为JavaScript停不下来,也就无法响应用户的行为。
线程结构
- 主线程:负责运行程序本身;
- EventLoop线程(消息线程):负责主线程与其它线程(各种I/O操作)进行通信;
异步模式

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