目次
プロセスとスレッドの違い: " >プロセスとスレッドの違い:
ホームページ ウェブフロントエンド フロントエンドQ&A JavaScriptのプロセスとスレッドの違いは何ですか

JavaScriptのプロセスとスレッドの違いは何ですか

Jun 09, 2021 pm 05:13 PM
javascript プロセス

相違点: プロセスには独立したアドレス空間があります。プロセスがクラッシュした後、保護モードの他のプロセスには影響しません。スレッドはプロセス内の異なる実行パスにすぎません (プロセスは 1 つ以上で構成されます)スレッド)、スレッド間に個別のアドレス空間 (共有メモリ) はなく、1 つのスレッドの終了はプロセス全体の終了と同等です。

JavaScriptのプロセスとスレッドの違いは何ですか

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

スレッドは次の 2 つに分けられます: シングル スレッドとマルチスレッド

シングル スレッド: 実行中のプログラム (つまり実行中) には、少なくとも1 つのスレッド、このスレッドはメイン スレッドと呼ばれます。メイン スレッドが 1 つだけあるプログラムは、シングル スレッド プログラムと呼ばれます。メイン スレッドは、すべてのコード (UI の表示と更新、ネットワーク リクエスト、ローカル ストレージなど) の実行を担当します。これらのコードは順次にのみ実行でき、同時に実行することはできません。

マルチスレッド: 複数のスレッドを持つプログラムは、マルチスレッド プログラムと呼ばれます。メイン スレッドは、複数のサブスレッドを開くことができます。サブスレッドとメイン スレッドは、独立した実行単位です。それぞれの実行相互に影響を与えず、同時に実行できます。

シングルスレッドとマルチスレッドの違い:

シングルスレッド: スレッドは 1 つだけあり、コードは順番に実行されます。コード ブロッキング (ページ一時停止アニメーションが発生しやすくなります) );

マルチスレッド: 複数のスレッドを持ち、スレッド間で独立して実行することで、コード ブロッキングを効果的に回避し、コードの実行パフォーマンスを向上させることができます。

プロセス定義: プロセスは進行中のプログラムであり、動的な概念です。これは、システムにおけるリソースの割り当てとスケジューリングの基本単位です。

プロセスとスレッドの違い:

プログラムには少なくとも 1 つのプロセスが含まれ、プロセスには少なくとも 1 つのスレッドが含まれます。

マルチプロセスは独立したメモリを持ち、マルチスレッドはメモリを共有するため、マルチスレッドによって動作効率が向上します;

マルチスレッドの重要性は、複数のプログラムを同時に実行できることです。ただし、システムはマルチスレッドを複数の独立したアプリケーションとはみなしません。

深い理解:

例:

1. コンピューターの核となるのは CPU です。 、すべてのコンピューティング タスクを担当します。常に稼働している工場のようなものです。

2. 工場の電力は限られており、一度に 1 つの作業場にしか供給できないと仮定します。言い換えれば、1 つのワークショップが動作し始めると、他のワークショップは動作を停止する必要があります。その背後にある意味は、1 つの CPU は一度に 1 つのタスクしか実行できないということです。

3. プロセスは工場現場のようなもので、CPU が処理できる単一のタスクを表します。 CPU は常に 1 つのプロセスを実行しており、他のプロセスは非実行状態になります。

4. 作業場には多くの作業者がいる場合があります。彼らは協力してミッションを完了します。

5. スレッドはワークショップの労働者のようなものです。プロセスには複数のスレッドを含めることができます。

6. 作業場内の空間は作業者間で共有されており、例えば多くの部屋に作業者全員が出入りできます。これは、プロセスのメモリ空間が共有され、各スレッドがこれらの共有メモリを使用できることを象徴しています。

7. ただし、各部屋の広さが異なり、トイレなど最大1名しか宿泊できない部屋もあります。中に人がいる場合は他の人は中に入ることができません。これは、スレッドが共有メモリを使用する場合、他のスレッドはそのメモリを使用する前に共有メモリの終了を待つ必要があることを意味します。

8. 他人の侵入を防ぐ簡単な方法は、ドアに鍵を追加することです。先に到着した人はドアに鍵をかけ、後から到着した人は鍵を見てドアの前に並び、鍵が開くのを待って中に入りました。これは

「相互排他ロック」 (相互排他、略して Mutex) と呼ばれ、複数のスレッドが特定のメモリ領域を同時に読み書きできないようにします。

9. キッチンなど、同時にn人が宿泊できる部屋もあります。つまり、人数がn人より多い場合、余った人は外で待つしかありません。これは、固定数のスレッドのみが使用できるメモリ領域のようなものです。

10. 現時点での解決策は、ドアに n 個の鍵を掛けることです。入った人は鍵を受け取り、出てくるときにその鍵を掛け直します。後から到着した人たちは、鍵が空であることに気づき、ドアのところで列に並ばなければならないことを悟りました。このアプローチは "セマフォ" (セマフォ) と呼ばれ、複数のスレッドが互いに競合しないようにするために使用されます。ミューテックスがセマフォの特殊なケース (n=1 の場合) であることを理解するのは難しくありません。言い換えれば、後者は前者を完全に置き換えることができます。ただし、ミューテックスは比較的シンプルで効率的であるため、この設計はリソースの排他性を保証する必要がある場合に引き続き使用されます。

11. オペレーティング システムの設計は、次の 3 つのポイントに要約できます。

(1) マルチプロセスの形式では、複数のタスクを同時に実行できます。

(2) マルチスレッドの形式では、単一のタスクをさまざまな部分に分割して実行することができ、リソースを共有できます。

プロセスとスレッドの主な違いは、オペレーティング システムのリソース管理方法が異なることです。プロセスには独立したアドレス空間があり、プロセスがクラッシュしても保護モードの他のプロセスには影響せず、スレッドはプロセス内の異なる実行パスにすぎません。

スレッドには独自のスタックとローカル変数がありますが、スレッド間に個別のアドレス空間はありません。1 つのスレッドの終了はプロセス全体の終了を意味するため、マルチプロセス プログラムはマルチスレッドよりも堅牢です。プロセスを切り替えると、より多くのリソースが消費され、効率が低下します。

ただし、同時操作と特定の変数の共有を必要とする一部の同時操作では、プロセスではなくスレッドのみを使用できます。

プログラミング関連の知識について詳しくは、
プログラミング ビデオ

をご覧ください。 !

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Explorer.exe プロセスとは何かを説明する Explorer.exe プロセスとは何かを説明する Feb 18, 2024 pm 12:11 PM

Explorer.exe とは何のプロセスですか? Windows オペレーティング システムを使用しているときに、「explorer.exe」という用語をよく聞きますが、このプロセスが何であるか知りたいですか?この記事では、プロセスexplorer.exeとは何か、その機能と効果について詳しく説明します。まず、explorer.exe は Windows オペレーティング システムの重要なプロセスであり、Windows エクスプローラー (ウィンドウ) の管理と制御を担当します。

ccsvchst.exe はどのようなプロセスですか? ccsvchst.exe はどのようなプロセスですか? Feb 19, 2024 pm 11:33 PM

ccsvchst.exe は、Symantec Endpoint Protection (SEP) ソフトウェアの一部である共通プロセス ファイルです。SEP は、有名なネットワーク セキュリティ会社 Symantec によって開発されたエンドポイント保護ソリューションです。ソフトウェアの一部として、ccsvchst.exe は SEP 関連のプロセスの管理と監視を担当します。まず、SymantecEndpointProtection(

Linux でゾンビプロセスを適切に強制終了する方法 Linux でゾンビプロセスを適切に強制終了する方法 Feb 19, 2024 am 10:40 AM

Linux システムでは、ゾンビ プロセスは終了したもののシステムにまだ残っている特別なプロセスです。ゾンビ プロセスは多くのリソースを消費しませんが、多すぎるとシステム リソースの枯渇を引き起こす可能性があります。この記事では、ゾンビ プロセスを正しく削除してシステムの正常な動作を保証する方法を紹介します。 1Linux ゾンビ プロセス 子プロセスがタスクを完了した後、親プロセスが時間内にステータスを確認しないと、子プロセスはゾンビ プロセスになります。子プロセスは親プロセスからの確認を待っており、システムは完了するまでリサイクルしません。そうしないと、ゾンビ プロセスがシステム内でハングし続けます。システム内にゾンビ プロセスがあるかどうかを確認するには、コマンド top を実行して、実行中のすべてのプロセスとゾンビ プロセスの可能性を表示します。 Linux における「top」コマンドの結果は、上の図から見ることができます。

Linuxのプロセス優先度調整方法を詳しく解説 Linuxのプロセス優先度調整方法を詳しく解説 Mar 15, 2024 am 08:39 AM

Linuxのプロセスの優先度調整方法を詳しく解説 Linuxシステムでは、プロセスの優先度によってプロセスの実行順序やシステム内のリソースの割り当てが決まります。プロセスの優先順位を合理的に調整すると、システムのパフォーマンスと効率が向上します。この記事では、Linuxでプロセスの優先度を調整する方法と具体的なコード例を詳しく紹介します。 1. プロセス優先度の概要 Linux システムでは、各プロセスには優先度が関連付けられています。優先順位の範囲は通常 -20 ~ 19 で、-20 は最高の優先順位を表し、19 は最高の優先順位を表します。

Linux のプロセスがスリープするのはなぜですか? Linux のプロセスがスリープするのはなぜですか? Mar 20, 2024 pm 02:09 PM

Linux のプロセスがスリープするのはなぜですか? Linux オペレーティング システムでは、さまざまな理由や条件によりプロセスが休止状態になることがあります。プロセスが休止状態にあるときは、プロセスが一時的に中断され、特定の条件が満たされるまで実行を続行できないことを意味し、その後起動して実行を継続できます。次に、Linux でプロセスが休止状態に入るときの一般的な状況をいくつか詳しく紹介し、具体的なコード例で説明します。 I/O の完了を待機中: プロセスが I/O 操作 (読み取りなど) を開始したとき

C++ 同時プログラミング: スレッドの枯渇と優先順位の逆転を回避するには? C++ 同時プログラミング: スレッドの枯渇と優先順位の逆転を回避するには? May 06, 2024 pm 05:27 PM

スレッドの枯渇を回避するには、公平なロックを使用してリソースの公平な割り当てを確保するか、スレッドの優先順位を設定します。優先順位の逆転を解決するには、リソースを保持しているスレッドの優先順位を一時的に高める優先順位の継承を使用するか、リソースを必要とするスレッドの優先順位を高めるロック プロモーションを使用します。

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

LinuxシステムにPHPプロセスが存在しないことを検出する方法 LinuxシステムにPHPプロセスが存在しないことを検出する方法 Mar 16, 2024 am 11:42 AM

「Linux システムで PHP プロセスがないことを検出する方法。具体的なコード例が必要です」 Web 開発に Linux システムを使用する場合、動的なページやロジックを処理するために PHP プロセスに依存することが多く、場合によっては PHP プロセスがあるかどうかを監視する必要がある場合があります。サーバー上のプロセス。この記事では、Linux システムに PHP プロセスがあるかどうかを検出する方法と、具体的なコード例を紹介します。 PHP プロセスを検出する必要があるのはなぜですか? Web 開発では、PHP プロセスは重要な役割を果たしており、PHP プロセスの解析と実行を担当します。

See all articles