- ゴルーチンの並列実行が発生する場合があります。
- ただし、コルーチンは常に順番に実行されます。
ゴルーチンは並列することを目的としています (または並列デプロイできる)、コルーチンは一般にそうではありません、ゴルーチンはチャネルを通じて通信します、コルーチンはイールドおよび再開操作を通じて通信します、ゴルーチンはコルーチンよりも強力で、コルーチンから学ぶのは簡単ですロジックはゴルーチンに多重化されます。
狭義には、ゴルーチンはマルチスレッド環境で発生する可能性があり、ゴルーチンは優先度の高いサポートを取得するために自らを制御できません。コルーチンは常に単一スレッドで発生し、コルーチン プログラムはホストが制御を積極的に放棄する必要があります。制御を取得し、他のコルーチンに渡します。
ゴルーチンはチャネル通信を使用し、コルーチンはイールドおよび再開オペレーションを使用します。
goroutine と coroutine の概念と操作メカニズムは、初期のオペレーティング システムから生まれました。
コルーチンの動作メカニズムは協調的なタスク処理に属します。初期のオペレーティング システムでは、各アプリケーションはオペレーティング システムのタスク処理ルールに従う必要がありました。アプリケーションが CPU を使用する必要がなくなった場合、アプリケーションは自発的に CPU の使用権を放棄します。 CPU。開発者が不注意または意図的にアプリケーションが CPU を長時間占有することを許可した場合、オペレーティング システムはそれに対して何もすることができず、その結果、コンピュータが簡単に応答しなくなったり、クラッシュしたりする可能性があります。
Goroutine はプリエンプティブ タスク処理に属しており、既存のマルチスレッドおよびマルチプロセス タスク処理と非常によく似ています。アプリケーションプログラムによる CPU の制御は最終的にはオペレーティングシステムによって管理される必要があり、アプリケーションプログラムが長時間にわたって大量の CPU を占有していることがオペレーティングシステムによって検出された場合、ユーザーはタスクを終了する権利を有します。