ホームページ > ウェブフロントエンド > フロントエンドQ&A > JavaScriptには複数のスレッドがありますか?

JavaScriptには複数のスレッドがありますか?

WBOY
リリース: 2022-06-15 16:15:11
オリジナル
3453 人が閲覧しました

JavaScript にはマルチスレッドがありません。JavaScript は 1 つのスレッドでのみ順次実行できるため、ブラウザの JavaScript インタプリタはシングルスレッドであり、JavaScript に複数のコアがある場合でもマルチスレッドをサポートしません。 , メインスレッドと呼ばれる単一のスレッドでタスクを実行するようにのみ作成できます。その主な目的は、ユーザーと対話して DOM を操作することです。シングルスレッドでない場合、非常に複雑な同期の問題が発生します。

JavaScriptには複数のスレッドがありますか?

このチュートリアルの動作環境: Windows 10 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript はマルチスレッドですか?

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート