2

geventドキュメントから:

greenlet はすべて同じ OS スレッドで実行され、協調的にスケジュールされます。

asyncioドキュメントから:

このモジュールは、コルーチンを使用してシングルスレッドの同時実行コードを記述するためのインフラストラクチャを提供します。asyncio提供します

試してみてください。マルチスレッドまたはマルチプロセスのコルーチンを実装する主要な Python ライブラリに出くわしたことはありません。つまり、コルーチンを複数のスレッドに分散させて、作成できる I/O 接続の数を増やします。

コルーチンは基本的に、メイン スレッドがこの 1 つの I/O バウンド タスクの実行を一時停止し、次の I/O バウンド タスクに進むことを可能にし、これらの I/O 操作の 1 つが終了して処理が必要な場合にのみ割り込みを強制することを理解しています。その場合、I/O タスクを複数のスレッド (それぞれが異なるコアで動作している可能性がある) に分散すると、実行できる要求の数が明らかに増えるはずです。

コルーチンがどのように機能するか、または機能するように意図されているかを誤解している可能性があるため、私の質問は2つの部分に分かれています。

  1. 複数のスレッド(おそらく異なるコア上) または複数のプロセスで動作するコルーチン ライブラリを持つことさえ可能ですか?

  2. もしそうなら、そのような図書館はありますか?

4

0 に答える 0