コンテンツへスキップ
uencoder

Event Loop

イベントループはイベントキューからイベントを取り出してコールバックへディスパッチし続けることで、シングルスレッドによるノンブロッキング I/O の並行処理を実現する。

目的

JavaScript/Node.js の並行処理モデルを理解し、メインスレッドのブロッキングを避ける。

メカニズム

ループ:1) キューからイベントを 1 つ取り出す。2) そのコールバックを最後まで実行する。3) マイクロタスクキューが空になったら次のイベントへ。Node.js は libuv を使い、ブラウザはレンダリングフェーズを加える。非同期 I/O はシステムへ委譲され、ループをブロックしない。

ユースケース

  • 並行処理モデル
  • パフォーマンス最適化
  • 非同期な I/O

関連用語

References