9.2 シングルスレッドとイベントループ

JavaScript は、一度に一つのことしかできない「シングルスレッド」という性質を持っています。それなのに、なぜ複数の処理を同時に行っているように見えるのでしょうか?

それは、イベントループという仕組みが働いているからです。

コールスタック

今すぐ実行する処理を積み上げる場所です。

タスクキュー

非同期処理が終わった後、実行待ちのタスク(コールバック関数)が並ぶ行列です。

イベントループ

コールスタックが空になったのを見計らって、タスクキューから次のタスクを取り出す管理人です。