JavaScriptとは何のスレッドですか

青灯夜游
リリース: 2021-11-04 17:40:30
オリジナル
1637 人が閲覧しました

JavaScript はシングルスレッドです。ブラウザ スクリプト言語としての JavaScript の主な目的は、ユーザーと対話して DOM を操作することです。これにより、JavaScript がシングルスレッドでのみ動作できることが決まり、そうでない場合は、非常に複雑な同期の問題が発生します。

JavaScriptとは何のスレッドですか

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

JavaScript のスレッドとは何ですか?なぜ?

JavaScript 言語の主な機能はシングルスレッドです。これは、同時に 1 つのことしか実行できないことを意味します。では、なぜ JavaScript は複数のスレッドを持てないのでしょうか?これにより効率が向上します。

JavaScript の単一スレッドは、その目的に関連しています。ブラウザーのスクリプト言語としての JavaScript の主な目的は、ユーザーと対話して DOM を操作することです。これにより、シングルスレッドのみが可能であることが決まります。そうでない場合は、非常に複雑な同期の問題が発生します。たとえば、JavaScript に同時に 2 つのスレッドがあるとします。1 つのスレッドは特定の DOM ノードにコンテンツを追加し、もう 1 つのスレッドはノードを削除します。この場合、ブラウザはどちらのスレッドを使用する必要がありますか?

つまり、複雑さを避けるために、JavaScript は誕生以来シングルスレッドであり、これがこの言語の中核機能となっており、今後も変わることはありません。
マルチコア CPU のコンピューティング能力を活用するために、HTML5 は Web Worker 標準を提案しています。これにより、JavaScript スクリプトは複数のスレッドを作成できますが、子スレッドはメインスレッドによって完全に制御されるため、 DOM を操作しないでください。したがって、この新しい標準は JavaScript のシングルスレッドの性質を変更しません。

プロセスとスレッド

1. プロセス

プロセスとは、固有のメモリ空間を占有するプログラムの実行を指します。プロセス は、Windows タスク マネージャーを通じて表示できます (以下を参照)。同時に、同じコンピュータ システムで 2 つ以上のプロセスを並列状態にすることができます。これがマルチプロセスです。たとえば、コンピュータでは WeChat、QQ、およびさまざまなブラウザを同時に実行できます。 一部のブラウザーは、Firefox や古いバージョンの IE など、単一プロセスで実行されます。また、一部のブラウザーは、chrome や新しいバージョンの IE など、複数のプロセスで実行されます。

2. スレッド

一部のプロセスでは、入力、スペル チェック、印刷などを実行できる Word など、同時に複数の処理を行うことができます。同時に。プロセス内で複数のことを同時に実行したい場合は、複数の「サブタスク」を同時に実行する必要があります。プロセス スレッド内でこれらを「サブタスク」と呼びます。
スレッドは、CPU の基本スケジューリング単位、プログラム実行の完全なプロセス、およびプロセス内の独立した実行単位を指します。マルチスレッドとは、プロセス内で複数のスレッドを同時に実行することを指します。 ブラウザはマルチスレッドで動作します。たとえば、ブラウザを使用して、曲をダウンロードし、同時にビデオを視聴することができます。さらに、JavaScript 言語の主な特徴はシングルスレッドであることを知っておく必要があります。マルチコア CPU の計算能力を活用するために、HTML5 は Web Worker 標準を提案しています。 JavaScript スクリプトは複数のスレッドを作成しますが、子スレッドは完全にメインスレッドの制御の対象となり、DOM を操作してはなりません。したがって、この新しい標準は JavaScript のシングルスレッドの性質を変更しません。

各プロセスは少なくとも 1 つのことを実行する必要があるため、プロセスには少なくとも 1 つのスレッドがあります。もちろん、Word のような複雑なプロセスは複数のスレッドを持つことができ、複数のスレッドを同時に実行することもできます。マルチスレッドの実行方法は複数のプロセスの実行方法と同じです。オペレーティング システムも複数のスレッドを素早く切り替え、すべてのスレッドが交互に短時間実行され、同時に実行されているように見えます。もちろん、実際に複数のスレッドを同時に実行するには、マルチコア CPU が必要です。

3. プロセスとスレッド

    アプリケーションは特定のプロセスのスレッドで実行する必要があります
  • プロセス内に少なくとも 1 つのスレッド実行中のスレッド: メイン スレッド。プロセスの開始後に自動的に作成されます。
  • 複数のスレッドがプロセス内で同時に実行されている場合、プログラムはマルチスレッドです。
  • プロセスのメモリ空間は共有されており、各スレッドはこれらの共有メモリを使用できます。
  • データを複数のプロセス間で直接共有することはできません

4. シングルスレッドとマルチスレッドの長所と短所は何ですか?

シングルスレッドの利点: シーケンシャルプログラミングはシンプルで理解しやすい

シングルスレッドの欠点: 効率が低い

#マルチスレッドの利点

: CPU 使用率を効果的に改善できる

マルチスレッドの欠点

:

マルチスレッド作成のオーバーヘッド
  • スレッド間の切り替えのオーバーヘッド
  • デッドロックと状態の同期の問題
  • ##[推奨学習:
  • JavaScript 上級チュートリアル
  • ]

以上がJavaScriptとは何のスレッドですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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