ゴルーチンに関する誤解を明確にしようとして、あるユーザーが Go プレイグラウンドに目を向けました。次のコードを実行しました:
<code class="go">package main import ( "fmt" ) func other(done chan bool) { done <- true go func() { for { fmt.Println("Here") } }() } func main() { fmt.Println("Hello, playground") done := make(chan bool) go other(done) <-done fmt.Println("Finished.") }</code>
Go Playground:
ローカル実行:
ほぼ生成された出力瞬時に:
Hello, playground. Finished.
Go Playground:
ローカル実行:
現在、Go Playground はキャッシュされたバージョンの出力を使用しているため、後続の実行では実際の実行が正確に反映されない可能性があることに注意してください。
GOMAXPROCS が goroutine の実行に与える影響を理解することは、設計にとって重要です。適切な同時実行モデル。 Go プレイグラウンドのデフォルト設定は、ローカル マシンの動作を常に模倣するとは限りません。これは、さまざまな構成でテストすることの重要性を強調しています。
以上がGo Goroutine の動作がプレイグラウンドとローカル実行で異なるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。