고루틴에 대한 오해를 풀기 위해 한 사용자가 Go Playground를 방문했습니다. 그리고 다음 코드를 실행했습니다:
<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 Playground의 기본 설정은 항상 로컬 시스템의 동작을 모방하지 않을 수 있으므로 다양한 구성에서 테스트하는 것이 중요합니다.
위 내용은 Go 고루틴 동작이 플레이그라운드와 로컬 실행 사이에서 다른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!