PythonのパートIVは、_ _ _高次のプログラミングプロセス、スレッド、コルーチン_3を指摘している。スレッド対プロセス

1.マルチタスクの原則
  通常マスター、より多くの労働者通常、我々はタスクを割り当てるための責任マスター、マーテル・Workderモードを設計するだろう、タスクを実行する責任労働者、そのマルチタスク環境、

2.マルチプロセス
  メインプロセスはマスターであります他のワーカープロセスがあり
  、高い安定性:子プロセスがクラッシュし、もちろん、メインプロセスにリンクされている、すべてのプロセス全体にハングアップし、メインプロセスおよび他の子プロセスには影響しませんが、プロセスはタスクマスターを割り当てるための唯一の責任があり、確率をハング低いです。
  大型の作成プロセスのコスト:UNIX / Linuxシステムでは、また、Windowsの下に巨大なプロセスコストを作成するには、フォークで呼び出すことができます。
  同時に実行しているオペレーティング・システム・プロセスの数が限られている:メモリとCPUの制限で、同時に実行しているプロセスの数千がある場合、オペレーティング・システムのスケジューラは、問題となります。

3.マルチスレッド
  メインスレッドがマスターで、他のスレッドはワーカーである
  利点:マルチスレッド、マルチプロセスモードは、少しではなく、多くのブロックより通常高速です; Windowsでは、および線形マルチプロセスよりも効率的。
  短所:任意のスレッドが崩壊する可能性があり、全体のプロセスの直接の結果を掛けます。プロセスのすべてのスレッドで共有メモリ。スレッドは、問題のコードを実行した場合Windowsでは、あなたは多くの場合、このプロンプトを見ることができます:「変更プログラムは不正な処理を行ったはシャットダウンされます、」実際には、多くの場合、質問のうちスレッドですが、オペレーティングシステムが必須となります全体のプロセスの終わり。

4.計算集約型および集約型IO
  計算集約型:
    多数の計算は、例えばPI、高精細ビデオデコードなどの計算のようなCPUリソースを、CPUの演算能力のおかげで消費します。この計算集約的なタスクは、マルチタスクで達成することができるが、しかし、複数のタスク、複数のイベントは、タスク切り替えに費やされ、タスクを実行するCPUの効率が低く、従って、CPUの最も効率的な使用のために、計算集約同時に、タスクの数は、CPUコアの数に等しくなければなりません。

  IO集約型:
    それはネットワークに来て、ディスクIOタスクはIO集約型のタスクを、このコラムの作業特性は少ないCPUの消費量は、タスクがIO操作を待っている時間のほとんどが原因でCPU IOよりもはるかに遅いの(完了されていますそして、メモリの速度)。IO集中型のタスクのために、より多くのタスクが、高いCPU効率が、しかし限界があります。最も一般的なタスクは、WebアプリケーションなどのIO集約型のタスクです。

おすすめ

転載: www.cnblogs.com/noah0532/p/10939229.html