JavaScript はシングルスレッドです。ブラウザ スクリプト言語としての JavaScript の主な目的は、ユーザーと対話して DOM を操作することです。これにより、JavaScript がシングルスレッドでのみ動作できることが決まり、そうでない場合は、非常に複雑な同期の問題が発生します。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
JavaScript 言語の主な機能はシングルスレッドです。これは、同時に 1 つのことしか実行できないことを意味します。では、なぜ JavaScript は複数のスレッドを持てないのでしょうか?これにより効率が向上します。
JavaScript の単一スレッドは、その目的に関連しています。ブラウザーのスクリプト言語としての JavaScript の主な目的は、ユーザーと対話して DOM を操作することです。これにより、シングルスレッドのみが可能であることが決まります。そうでない場合は、非常に複雑な同期の問題が発生します。たとえば、JavaScript に同時に 2 つのスレッドがあるとします。1 つのスレッドは特定の DOM ノードにコンテンツを追加し、もう 1 つのスレッドはノードを削除します。この場合、ブラウザはどちらのスレッドを使用する必要がありますか?
つまり、複雑さを避けるために、JavaScript は誕生以来シングルスレッドであり、これがこの言語の中核機能となっており、今後も変わることはありません。
マルチコア CPU のコンピューティング能力を活用するために、HTML5 は Web Worker 標準を提案しています。これにより、JavaScript スクリプトは複数のスレッドを作成できますが、子スレッドはメインスレッドによって完全に制御されるため、 DOM を操作しないでください。したがって、この新しい標準は JavaScript のシングルスレッドの性質を変更しません。
プロセスとは、固有のメモリ空間を占有するプログラムの実行を指します。プロセス は、Windows タスク マネージャーを通じて表示できます (以下を参照)。同時に、同じコンピュータ システムで 2 つ以上のプロセスを並列状態にすることができます。これがマルチプロセスです。たとえば、コンピュータでは WeChat、QQ、およびさまざまなブラウザを同時に実行できます。 一部のブラウザーは、Firefox や古いバージョンの IE など、単一プロセスで実行されます。また、一部のブラウザーは、chrome や新しいバージョンの IE など、複数のプロセスで実行されます。
一部のプロセスでは、入力、スペル チェック、印刷などを実行できる Word など、同時に複数の処理を行うことができます。同時に。プロセス内で複数のことを同時に実行したい場合は、複数の「サブタスク」を同時に実行する必要があります。プロセス スレッド内でこれらを「サブタスク」と呼びます。
スレッドは、CPU の基本スケジューリング単位、プログラム実行の完全なプロセス、およびプロセス内の独立した実行単位を指します。マルチスレッドとは、プロセス内で複数のスレッドを同時に実行することを指します。 ブラウザはマルチスレッドで動作します。たとえば、ブラウザを使用して、曲をダウンロードし、同時にビデオを視聴することができます。さらに、JavaScript 言語の主な特徴はシングルスレッドであることを知っておく必要があります。マルチコア CPU の計算能力を活用するために、HTML5 は Web Worker 標準を提案しています。 JavaScript スクリプトは複数のスレッドを作成しますが、子スレッドは完全にメインスレッドの制御の対象となり、DOM を操作してはなりません。したがって、この新しい標準は JavaScript のシングルスレッドの性質を変更しません。
シングルスレッドの利点: シーケンシャルプログラミングはシンプルで理解しやすい
シングルスレッドの欠点: 効率が低い
#マルチスレッドの利点: CPU 使用率を効果的に改善できる
マルチスレッドの欠点:
マルチスレッド作成のオーバーヘッド以上がJavaScriptとは何のスレッドですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。