このゴルーチンはブロックします...
go log.Fatal(http.ListenAndServe(":8000", nil))
log.Print("This doesn't print")
このゴルーチンはブロックしません...
go func() {
log.Fatal(http.ListenAndServe(":8000", nil))
}()
log.Print("This prints")
このゴルーチンもブロックしません...
go http.ListenAndServe(":8000", nil)
log.Print("This prints")
これは仕様によると:
関数の値とパラメーターは、呼び出しゴルーチンで通常どおり評価されます。
https://golang.org/ref/spec#Go_statements
に
go log.Fatal(http.ListenAndServe(":8000", nil))
最初のパラメータは
http.ListenAndServe(":8000", nil)
これは、関数log.Fatal
をgoroutineとして実行する前に評価されるため、ブロックされます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加