プロセス、スレッド、コルーチン違いは?
プロセス:基本的データの分離を処理するためのコンピュータリソースの割り当ての最小単位。
スレッド:最小単位を計算するために使用されるCPUは、スレッドが実際に物事を行うために使用されます。
プロセスは複数のスレッドを持つことができます。アプリケーションが複数のプロセスを持つことができます。しかし、PythonのGILは、具体的な理由をロックし、そしてそれは、このようなマルチスレッドのJava言語としての違いがあるため、
同時に、プロセス一つだけのスレッドがCPUスケジューリングすることができます。計算集約型のデータを扱うときに、我々は、高効率を達成するために複数のプロセスを開く必要があります。
IO集約型のデータを扱うには、あなたは、効率を改善するために複数のスレッドを使用することができます。IO操作は、CPUスレッドを取りませんので。
GILロック制御プロセスは、本質的には、Pythonのは、ロックアップ基礎となるC言語です。
コルーチン:実際には、マイクロスレッド。スレッドをスライスし、異なる時間に、スレッドスケジューリング、複数のシートは、他の操作を実行して行く、IO操作が発生しました。ときにバックIO処理動作の結果は、それがスイッチバックします。
コルーチン自体が存在しない場合、ブロックが生成プログラマ制御コードを達成するために実行されます。コルーチンは、コルーチン+ IOモジュールの動作を実現greenlet Python実装モジュールはgeventを使用することができます
シングルスレッドの同時実行:
コルーチン切り替え+ IO:モジュールgevent
ツイスト:イベントループの非ブロックIOのフレームワークに基づいて、