pythonのプロセスとスレッドを区別します。


今日整理した文章はみんなにPythonのプロセスとスレッドの違いを整理するので、コードは何もありません。彼らの違いをよく知ってほしいです。どんな状況でスレッドを使っていますか?
プロセスの基本概念
概念
プロセスとは、1つのデータセット上のプログラムの動的実行プロセスである。プロセスは、通常、プログラム、データセット、プロセス制御ブロックの3つの部分から構成される。私たちが作成したプログラムは、プロセスがどのような機能を完成し、どのように完成するかを説明します。データセットは、プログラムが実行中に必要なリソースです。プロセス制御ブロックは、プロセスの外部の特徴を記録し、プロセスの実行変化過程を説明するために使用され、システムは、プロセスを制御し、管理するために利用することができ、システム感知プロセスの存在の唯一のフラグである。
スレッドの基本概念
概念
スレッドはプロセス中に演算を実行する最小単位であり、プロセス中の一つのエンティティであり、システムによって独立してスケジューリングされ、分派された基本単位であり、スレッド自体はシステムリソースを持たず、実行に必要なリソースだけを持っているが、同じプロセスに属する他のスレッドと共有することができる。スレッドは他のスレッドを作成してキャンセルすることができ、同じプロセスにおける複数のスレッドの間で同時に実行することができます。
利益
  • はスケジューリングが容易である。
  • は合併性を向上させ、スレッドを介して効率的に同時性を実現することができる。プロセスは、同じプログラムの異なる部分を実行するために複数のスレッドを作成することができます。
  • はオーバーヘッドが少なく、スレッド作成は作成プロセスよりも速く、必要なオーバーヘッドが少ないです。
  • プロセスの基本状態と状態の関係
    状態:運転、渋滞、渋滞、準備完了、準備完了
    状態間の変換:
  • 準備完了のプロセスは、CPUによって実行され、実行状態になる。
  • 実行中のプロセスは、I/O要求を行うか、または要求されたリソースを得ることができず、ブロック状態になる。
  • 実行中のプロセスは、プロセスの実行が完了した(または時間スライスが完了した)、レディ状態になります。
  • は、閉塞状態のプロセスを保留して閉塞状態にし、プロセス閉塞を引き起こすI/O操作がユーザ再起動前に完了し(呼び覚ましと呼ばれる)、閉塞状態を保留してレディ状態になり、I/O操作が終了する前にユーザがプロセスを再開すると、閉塞状態がブロック状態になる。
  • は、レディ(または実行)中のプロセスを保留し、レディ状態に戻した後、レディ状態がレディ状態になる。
  • プロセスとスレッドの関係:
  • スレッドは一つのプロセスにしか属しません。一つのプロセスは複数のスレッドがありますが、少なくとも一つのスレッドがあります。
  • リソースはプロセスに割り当てられ、同じプロセスのすべてのスレッドはこのプロセスのすべてのリソースを共有する。
  • 処理機はスレッドを配っています。すなわち、本当に処理機で実行しているのはスレッド
  • です。
  • スレッドは、実行中に協調同期が必要である。異なるプロセスのスレッド間では、メッセージ通信の方法を用いて同期を達成する。スレッドとは、プロセス内の実行ユニットであり、プロセス内のスケジューリング可能なエンティティでもある。
  • プロセスとスレッドの違い:
  • 運転方式が違います。
  • プロセスは単独で実行できません。リソースのセットです。
    プロセスはCPUを操作するには、まずスレッドを作成しなければなりません。
    同じプロセスのスレッドは、同じプロセスを共有するメモリ空間です。
  • 関係
  • プロセスの最初のスレッドはメインスレッドで、メインスレッドは他のスレッドを作成できます。他のスレッドもスレッドを作成できます。スレッド間は平等です。
    プロセスは親プロセスと子プロセス、独立したメモリ空間、一意の識別子:pidがあります。
  • スピード
  • 起動スレッドは起動プロセスより速いです。
    実行スレッドと実行プロセスの速度は同じで、比較性がありません。
    スレッド共有メモリ空間は、プロセスのメモリが独立しています。
  • を作成します。
    親プロセスは子プロセスを生成します。メモリ空間をコピーするのに相当します。プロセス間は直接アクセスできません。
    新しいスレッドを作成するのは簡単です。親プロセスをコピーする必要があります。
    スレッドは同じスレッド内の他のスレッドを制御して操作することができますが、プロセスはサブプロセスのみを操作できます。
  • インタラクション
  • 同じプロセスのスレッド間で直接アクセスできます。
    二つのプロセスは通信するには一つの中間エージェントを通して実現されなければならない。
  • スケジュール
  • スレッドはスケジュールと割り当ての基本単位として、プロセスはリソースを持つ基本単位としています。
  • 合併性
  • プロセス間だけでなく、同じプロセスの複数スレッド間でも同時に実行できます。
  • は資源を持っています。
  • プロセスはリソースを持つ独立した単位であり、スレッドはシステムリソースを持たないが、プロセスに属するリソースにアクセスすることができる。
  • システムオーバーヘッド:
  • プロセスを作成または元に戻すとき、システムがリソースを割り当てて回収するため、システムのオーバーヘッドは、スレッドを作成または元に戻すときのオーバーヘッドより明らかに大きい。
    以上はpythonのプロセスとスレッドの詳細を区別しています。pythonプロセスとスレッドに関する資料は他の関連記事に注目してください。