コンセプトのインタビューの質問

プロセス、スレッド、コルーチン違いは?

プロセス:基本的データの分離を処理するためのコンピュータリソースの割り当ての最小単位。

スレッド:最小単位を計算するために使用されるCPUは、スレッドが実際に物事を行うために使用されます。

プロセスは複数のスレッドを持つことができます。アプリケーションが複数のプロセスを持つことができます。しかし、PythonのGILは、具体的な理由をロックし、そしてそれは、このようなマルチスレッドのJava言語としての違いがあるため、

同時に、プロセス一つだけのスレッドがCPUスケジューリングすることができます。計算集約型のデータを扱うときに、我々は、高効率を達成するために複数のプロセスを開く必要があります。

IO集約型のデータを扱うには、あなたは、効率を改善するために複数のスレッドを使用することができます。IO操作は、CPUスレッドを取りませんので。

GILロック制御プロセスは、本質的には、Pythonのは、ロックアップ基礎となるC言語です。

コルーチン:実際には、マイクロスレッド。スレッドをスライスし、異なる時間に、スレッドスケジューリング、複数のシートは、他の操作を実行して行く、IO操作が発生しました。ときにバックIO処理動作の結果は、それがスイッチバックします。

コルーチン自体が存在しない場合、ブロックが生成プログラマ制御コードを達成するために実行されます。コルーチンは、コルーチン+ IOモジュールの動作を実現greenlet Python実装モジュールはgeventを使用することができます

シングルスレッドの同時実行:

コルーチン切り替え+ IO:モジュールgevent 

ツイスト:イベントループの非ブロックIOのフレームワークに基づいて、

 

おすすめ

転載: www.cnblogs.com/wen-kang/p/11298727.html