Coroutine は Go 言語の軽量スレッド実装であり、Go ランタイムによって管理されます。次に、go 入門チュートリアル のコラムから、go 言語の goroute コルーチンを紹介します。
ゴルート コルーチン
プロセスとスレッド
プロセスはシステム リソースです割り当てとスケジューリングの基本単位。スレッドは CPU のスケジューリングとディスパッチの基本単位です。プロセスは複数のスレッドを作成およびキャンセルできます
同時実行性と並列性
複数のスレッドプログラムは 1 つのコアを備えた CPU で実行され、同時実行されます。
マルチスレッド プログラムは、複数のコアを備えた CPU で実行され、並列実行されます。
コルーチンとスレッド
コルーチン: 独立したスタック スペース、共有ヒープ メモリ、ユーザーによって制御されるスケジューリング。基本的にユーザー レベルのスレッドと同様で、これらのユーザー レベルのスレッドのスケジューリングはそれ自体で実装されます。
スレッド: 1 つのスレッドで複数のコルーチンを実行できます。
単純な同時実行のケース。この 2 つのコルーチンは hello と world を出力します
package main import( "fmt" "time" ) func test(){ for{ fmt.Println("hello") time.Sleep(time.Second) } } func main(){ go test() for{ fmt.Println("world") time.Sleep(time.Second) } }
Go 言語の詳細については、php 中国語 Web サイトを参照してくださいgo 言語チュートリアルカラム 。
以上がGo言語のgorouteコルーチンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。