次の図は、Jon Resigの書籍Secrets of the JavaScript Ninjaの第3章から抜粋したものです。ここでは、著者がブラウザのイベントループについて説明しています。ブラウザで実行されているJavaScriptの単一スレッドの概念
本はこれを言っている:
それはキューに をイベントを置き、ブラウザのメカニズムは、このイベントループモデルの外部にあることに注意することが重要です。イベントが発生したタイミングを判断し、それらを にプッシュするには、処理 が必要です。イベントキューは、 イベントを処理しているスレッドには参加しません。
私の質問は、ブラウザのJavaScriptがシングルスレッドであると言うのは間違いありませんか?明らかに2つの別々のタスク(イベントとイベントキューの処理はここで並行して行われている)が明確に分かれているので、この質問をします。
上記の質問を(おそらく)もっと面白くすることは、**即時コールバック**([この回答](http://stackoverflow.com/a/2734311/1711186)で提案されているように)の影響である可能性があります。要するに**即時コールバック**はJavascriptコードが実行され、ブロッキングステートメント(つまり 'alert()')によって停止された他のコードはまだ完了していません(https://developer.mozilla.org /en-US/docs/Web/JavaScript/Guide/EventLoop#.22Run-to-completion.22)。これにより、第2のタスク「イベントキューイング」がマルチスレッド問題(すなわち決定論)を導入することができると思われる。良い質問! – humanityANDpeace
可能な複製[シングルスレッドであることが保証されていますか?](http://stackoverflow.com/questions/2734025/is-javascript-guaranteed-to-be-single-threaded) – Liam