下圖摘自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