JavaScript にはマルチスレッドがありません。JavaScript は 1 つのスレッドでのみ順次実行できるため、ブラウザの JavaScript インタプリタはシングルスレッドであり、JavaScript に複数のコアがある場合でもマルチスレッドをサポートしません。 , メインスレッドと呼ばれる単一のスレッドでタスクを実行するようにのみ作成できます。その主な目的は、ユーザーと対話して DOM を操作することです。シングルスレッドでない場合、非常に複雑な同期の問題が発生します。
このチュートリアルの動作環境: Windows 10 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
JavaScript にはマルチスレッドがありません。JavaScript はシングルスレッドです。
ブラウザ スクリプト言語としての JavaScript の主な目的は、ユーザーと対話し、DOM を操作することです。これにより、シングルスレッドのみが可能であることが決まります。そうでない場合は、非常に複雑な同期の問題が発生します。
スレッドは基本的に、プログラムがタスクを完了するために使用できる単一のプロセスです。各スレッドは一度に 1 つのタスクのみを実行できます:
Task A --> Task B --> Task C
各タスクは順番に実行され、次のタスクが開始される前に 1 つのタスクが完了する必要があります。
前述したように、現在では多くのコンピューターに複数のコアが搭載されているため、複数の操作を同時に実行できます。マルチスレッドをサポートできるプログラミング言語は、複数のコアを使用して複数のタスクを同時に完了できます。
Thread 1: Task A --> Task B Thread 2: Task C --> Task D
伝統的に、JavaScript はシングルスレッドです。複数のコアがあっても、メインスレッドと呼ばれる単一のスレッドでのみタスクを実行させることができます。上記の例は次のように実行されます:
Main thread: Render circles to canvas --> Display alert()
js には複数のスレッドがありますか? js 自体は単一スレッドでのみ実行できるため、マルチスレッドをサポートしていないことは間違いありません。以下で分析してみましょう:
まず、ブラウザーには少なくとも 3 つのスレッドがあります: js エンジン スレッド (js の処理)、gui レンダリング スレッド (ページ レンダリング)、ブラウザー タイム トリガー スレッド (制御対話)
js は dom 要素を操作でき、それが gui のレンダリング結果に影響を与えるため、js エンジン スレッドと gui レンダリング スレッドは相互に排他的です。つまり、js エンジン スレッドが動作状態にあるとき、gui レンダリング スレッドは凍らされた。
JS エンジンはイベント駆動型で、シングルスレッド実行メカニズムを採用しています。つまり、JS エンジンはタスク リストからタスクを順番に取得して実行するだけです。
【関連する推奨事項: JavaScript ビデオ チュートリアル 、Web フロントエンド ]
以上がJavaScriptには複数のスレッドがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。