js的单线程

本文为理解http://www.ruanyifeng.com/blog/2014/10/event-loop.html博文后,所总结的部分内容

从诞生起,js就是单线程的语言,但是,有的时候,比如很多I/O时,在单线程过程中,会有大量的时间耗费在等待I/O响应上,而不能处理其他任务,针对该问题,为了利用多核cpu,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。所以,这个新标准并没有改变JavaScript单线程的本质。

通过这样的机制,当遇到i/o操作时,主线程通知子线程,去通知i/o设备,而主线程不再等待响应,而是直接继续执行下一任务,当设备响应被子线程返回时,主线程再切换到该i/o操作所在任务,执行任务中的剩余部分。



你可能感兴趣的:(js的单线程)