JavaScriptの大きな特徴の1つは、「シングルスレッド」基盤の言語だという点です。スレッドが1つということは、同時に1つの作業だけを処理できるということです。しかし、実際にJavaScriptが使われる環境を考えてみると、多くの作業が同時に処理されていることが分かります。例えば、Webブラウザは、アニメーション効果を見せながら、マウスの入力を受けて処理をし、Node.js基盤のWebサーバーでは、同時に複数のHTTPリクエストを処理したりします。スレッドが1つなのに、どうしてこのようなことができるのでしょうか?質問を変えると、「JavaScriptはどのように同時実行(Concurrency)をサポートしているのでしょうか?」 このとき登場する概念が「イベントループ」です。Node.jsを導入した際、イベントループ基盤の非同期方式でNon-Blocking IOに対応して…」のような
![JavaScriptとイベントループ | NHN Cloud Meetup](https://cdn-ak-scissors.b.st-hatena.com/image/square/6145da8d873f4aef64d010e42e99927ccb5587e3/height=288;version=1;width=512/https%3A%2F%2Fmeetup-jp.toast.com%2Fwp-content%2Fuploads%2F2019%2F06%2F083_01.png)