最初のゴルーチンだけを待つのはなぜですか
func Sleep(d Duration)
http://golang.org/pkg/time
"Sleep は現在のゴルーチンを期間 d 一時停止します。"
残りは直接実行されます。チャネルが原因だと思いますが、c chan string
両方の動作がわかりません。
最初のゴルーチンだけを待つのはなぜですか
func Sleep(d Duration)
http://golang.org/pkg/time
"Sleep は現在のゴルーチンを期間 d 一時停止します。"
残りは直接実行されます。チャネルが原因だと思いますが、c chan string
両方の動作がわかりません。
すべての go ルーチンは同時に実行されているため、すべて同時に 4 秒間スリープするため、すべて同時に終了します。
あなたは彼らをこのように呼びました。go
すべての機能が一度に実行されることを意味しますgetHostName
。
for i := 0; i < max; i++ {
go getHostName(haveHost, ipadresse_3, i)
}
これは、すべてのスリープが同時に発生することを意味します
func getHostName(h chan string, ipAdresse string, n int) {
//Here!!!
time.Sleep(4 * time.Second)
ip := ipAdresse + strconv.Itoa(n)
//ip, ok := net.LookupAddr(ip)
if false {
h <- ip + " - "
} else {
h <- "error" + strconv.Itoa(n)
}
}
そのため、全員が同時に終了します。