ホームページ  >  記事  >  バックエンド開発  >  Pythonのマルチスレッドとマルチプロセスの違い

Pythonのマルチスレッドとマルチプロセスの違い

清浅
清浅オリジナル
2019-04-08 11:20:275517ブラウズ

Python におけるマルチプロセスとマルチスレッドの違いは次のとおりです: スレッドはプロセス内で実行する必要があり、プロセスには複数のスレッドを含めることができます。プロセスは同じアドレス空間を共有でき、プロセスは物理アドレスを共有できます。スレッドの作成はシンプルで、プロセスはクローン作成などを行う必要があります。

今日私が共有するのは、Python におけるマルチプロセスとマルチスレッドの関連知識と違いです。次の記事で詳しく紹介します。一定の参考値があり、皆様のお役に立てれば幸いです

Pythonのマルチスレッドとマルチプロセスの違い

[推奨コース: Python チュートリアル]

スレッドの概念:

スレッドは、オペレーティング システムにおける操作スケジューリングの最小単位です。これはプロセスに含まれており、プロセス内の実際の操作単位となります。スレッドとは、プロセス内の制御フローの単一シーケンスを指します。プロセスには複数のスレッドを含めることができ、各スレッドは同時に異なるタスクを実行できます。スレッドは、CPU による実行に必要な一連の命令とみなすことができます。

マルチスレッド

Python 標準ライブラリには、 _thread と threading 、 _thread という 2 つのモジュールが用意されています。デーモン スレッドをサポートしない低レベルのモジュールであるため、メイン スレッドが終了すると、すべての子スレッドが強制的に終了します。スレッディングは、デーモン スレッドをサポートするために _thread をカプセル化する高度なモジュールです。ほとんどの場合、高度なモジュール スレッドを使用するだけで済みます。

Pythonのマルチスレッドとマルチプロセスの違い

プロセスの概念:

プロセスとは、特定のデータ セットに対するプログラムの実行プロセスを指します。システム リソース割り当てと実行呼び出しのための独立したユニット。つまり、各アプリケーションには独自のプロセスがあります。プロセスが開始されると、最初にスレッドが生成されます。このスレッドはメイン スレッドと呼ばれ、その後、メイン スレッドが他の子スレッドを作成します

複数のプロセス:

複数のプロセス プロセスは、リモートとローカルの同時実行性を提供するマルチプロセッシング モジュールです。マルチプロセッシング ライブラリの使用シナリオでは、すべての子プロセスは親プロセスによって開始されます。この親プロセスは一連のオブジェクトの状態を管理するマッター プロセスになります。このプロセスが終了すると、子プロセスは不安定な状態になる可能性が高いため、親プロセスは安定性を維持するためにできる限りのことを行わないでください

Pythonのマルチスレッドとマルチプロセスの違い

Threadsとプロセスの違い

(1) スレッドは特定のプロセスで実行される必要があります。プロセスには複数のスレッドを含めることができますが、存在できるメイン スレッドは 1 つだけです。

(2) 複数のスレッドが同じアドレス空間を共有し、ファイルやその他のリソースを開きます。複数のプロセスが物理メモリ、ディスク、プリンタ、その他のリソースを共有します。

#(3) スレッドはリソースをほとんど占有せず、システム オーバーヘッドが低く、スイッチング速度が速く、同じプロセス内の複数のスレッドでデータを共有できますが、プロセス間で共有することはできません

(4)新しいスレッドの作成は非常に簡単ですが、新しいプロセスの作成には親プロセスのクローン作成が必要です

(5) スレッドは同じプロセス内の他のスレッドを制御および操作できますが、プロセスが実行できるのは子プロセスを操作する

要約: 上記がこの記事の全内容です。皆様のお役に立てれば幸いです。


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

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