Event Loop
イベントループはイベントキューからイベントを取り出してコールバックへディスパッチし続けることで、シングルスレッドによるノンブロッキング I/O の並行処理を実現する。
目的
JavaScript/Node.js の並行処理モデルを理解し、メインスレッドのブロッキングを避ける。
メカニズム
ループ:1) キューからイベントを 1 つ取り出す。2) そのコールバックを最後まで実行する。3) マイクロタスクキューが空になったら次のイベントへ。Node.js は libuv を使い、ブラウザはレンダリングフェーズを加える。非同期 I/O はシステムへ委譲され、ループをブロックしない。
ユースケース
- 並行処理モデル
- パフォーマンス最適化
- 非同期な I/O