『イベントループとプロミスチェーンで学ぶJavaScriptの非同期処理』
イベントループとプロミスチェーンで学ぶJavaScriptの非同期処理
第1部 - API を提供する環境と実行メカニズム
非同期 API と環境
#JavaScript はシングルスレッド言語
プログラムはシングルスレッドで実行される
つまり単一 #コールスタック で実行される
ブラウザ環境で言えばメインスレッドで実行される
シングルスレッドで実行されるので、長期間メインスレッドを占有するような処理があるとその間は何もできなくなってしまう
これをブロッキングという
メインスレッドは、ブラウザーがユーザーのイベントや描画を処理するところです。
既定では、ブラウザーは単一のスレッドを使用してページ内のすべての JavaScript を、レイアウト、再フロー、ガベージコレクションなどと同様に実行します。
つまり、実行に時間がかかる JavaScript 関数がスレッドをブロックし、ページが反応しなくなり、使い勝手が悪くなります。
Main thread (メインスレッド) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN