fuz*_*nny 2 javascript concurrency asynchronous conceptual
我无法想象Javascript如何既可以是单线程又可以在客户端上不阻塞。我一直在想像流水线:
在代码执行开始时,您只有一条装配线,将不同的零件组装到汽车上。
达到完工率的20%时,需要添加引擎,但是尚未组装引擎。
而不是等待引擎组装,组装线被分解成两条组装线-两个螺纹,对吗?
1号线继续组装汽车的其他零件。
2号线开始组装发动机。
2号线完成引擎的组装后,将返回1号线并添加引擎。
根据发动机的组装速度,此时1号线的完工率为30%,完工率为99%,依此类推。
这就是我设想的非阻塞,异步代码的方式。1号线的主线程可以继续前进,而不必等待2号线先完成。但是这种组装线的隐喻需要两条组装线或两个线程,但是JS是单线程的。
所以现在我很困惑。
简而言之,运行时具有一个事件循环,可以在1个线程中模拟异步。总之,我发现这段视频和文字是一个很好的解释:http : //2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html
归档时间: |
|
查看次数: |
104 次 |
最近记录: |