下图摘自Jon Resig编写的书籍Secrets of the JavaScript Ninja的第3章。这里作者正在解释浏览器事件循环。在浏览器中运行的JavaScript的单线程概念
书中有这样说:
需要注意的是,它将在事件 到队列中的浏览器机制是外部事件循环模式是很重要的。处理 确定何时发生事件并将它们推送到 事件队列不需要参与处理事件的线程的处理 。
所以我的问题是正确的说浏览器中的JavaScript是单线程?我问这个问题,因为很明显,两个单独的任务(处理事件和事件队列在这里并行进行)。
通过所谓的**即时回调**(如[本答案](http://stackoverflow.com/a/2734311/1711186)中所述)可能会引起上述问题(也许)更有趣。简而言之,这样的**立即回调**将是Javascript代码运行,而其他代码由阻塞语句(即'alert()')终止尚未[运行完成](https://developer.mozilla.org /en-US/docs/Web/JavaScript/Guide/EventLoop#.22Run-to-completion.22)。由此看来,第二个任务“事件排队”可以引入多线程问题(即确定性)。好问题! – humanityANDpeace
可能的重复[是否javascript保证是单线程?](http://stackoverflow.com/questions/2734025/is-javascript-guaranteed-to-be-single-threaded) – Liam