- 並行性を向上させることができます
- プロセス/スレッドのコルーチンが作成された本物のコンピュータープログラマーであります
- コルーチンが実際にスレッドを作成し、「マイクロ・スレッディング」と呼ばれることができることは、いくつかのタスクを実行することになります
- プロセスは、コンピュータリソース割り当ての最小単位であります
- スレッドは、コンピュータのCPUにスケジュールすることができる最小単位であります
- スレッドの複数のコルーチンができます
- プロセスは、少なくとも一つのスレッド(少なくとも1つのプロセス内のアプリケーション)に、プロセスの処理をリソースを共有することができるプロセスのスレッドで複数のスレッドを持つことができ
- ファイル、ネットワーク、キュー:あなたがコミュニケーションをしたい場合は、デフォルトのプロセス間でリソースを共有することができません、に基づくことができます
- なぜならGILロックの同じ時間でのpythonのプロセスで唯一のスレッドがCPUスケジューリングできることを保証するために、
- 計算集約型マルチプロセス(マルチコアの使用)
- IO +切り替えIO(多核を使用せずに)集中的なマルチスレッド/コルーチン
- 注:シンプルなコルーチン並行性を改善する方法はありませんが、単にコードの間で前後に切り替える、プラスIOが自動的に切り替わる理にかなっています
ROM gevent輸入サル
monkey.patch_all()
輸入行商
インポート時
DEF)(食べる:
印刷( '食品1を食べる')
time.sleep(3)
プリント( '食品2を食べます')
デフ遊ぶ():
プリント( 'プレー1')
time.sleep(3)
印刷( '遊び2')
G1 = gevent.spawn(食べる)
G2 = gevent.spawn(遊び)
gevent.joinall([G1、G2])