マイクロスレッドの導入により、コルーチンは単一スレッドで複数のタスクを同時に実行する機能を実現し、システムリソースを最大限に活用してパフォーマンスを向上させることができます。

著者: 禅とコンピュータープログラミングの芸術

1 はじめに

コンピューター サイエンスでは、コルーチンはプログラミングの概念です。これにより、スレッドが実行を一時停止し、別のスレッドに切り替えることができます。スレッドの切り替えには、CPU のプリエンプションやオペレーティング システムのプロセス スケジューリングなどの追加のオーバーヘッドが含まれるため、コルーチンを使用すると、スレッドの作成と切り替えのオーバーヘッドを大幅に削減できます。スレッドと比較して、コルーチンには次の利点があります。

  1. 記述が容易になる: コルーチンにより、よりきめ細かい同時実行が可能になり、マルチタスクによるメモリの共有が可能になるため、正確で堅牢な非同期 I/O モデルを簡単に作成できます。
  2. 効率の向上: コルーチンは非プリエンプティブな状態で実行できるため、複雑なスレッドの同期やスケジューリングが不要となり、ロック競合などの問題を回避し、処理能力を効果的に向上させます。
  3. 理解しやすい: 各コルーチンは独立した実行本体であるため、内部状態は十分に分離されており、他のコルーチンの動作に影響を与えないため、分析とデバッグが容易になります。

マイクロスレッドを導入すると、コルーチンは単一のスレッドで複数のタスクを同時に実行できるようになります。たとえば、プログラムは時間のかかる IO 操作をいくつか実行する必要がある場合がありますが、スレッド全体を待機状態に保つことはできません。待機状態を維持すると、CPU が他のタスクを実行できなくなるからです。マイクロスレッドを導入すると、コルーチンは複数の IO 操作を 1 つのスレッドで並行して実行できるため、全体的なパフォーマンスが向上します。

2. 基本的な概念と用語の説明

1.コルーチン

コルーチンは、実行を一時停止し、他の関数に切り替え、適切なタイミングで戻って実行を継続できる関数です。これはスレッドより小さいサブルーチンですが、スレッドに非常によく似ています。コルーチンの最大の特徴は、作業を完了するために必要なスタック領域が非常に少ないことです。言い換えれば、コルーチンは実際にはユーザーレベルのスレッドです。

2. マイクロスレッド

マイクロスレッドは

Guess you like

Origin blog.csdn.net/universsky2015/article/details/131971633