0
爲什麼只等待與並行化 - 爲什麼睡眠只能暫停一次?
func Sleep(d Duration)
http://golang.org/pkg/time
第一個夠程「睡眠暫停時間d當前夠程。」
但其餘的是直接執行。我認爲通道c chan string
,但我不明白兩者之間的行爲。
爲什麼只等待與並行化 - 爲什麼睡眠只能暫停一次?
func Sleep(d Duration)
http://golang.org/pkg/time
第一個夠程「睡眠暫停時間d當前夠程。」
但其餘的是直接執行。我認爲通道c chan string
,但我不明白兩者之間的行爲。
所有你走程序同時運行,使他們在同一時間都睡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)
}
}
所以他們都完成在同一時間。
是的,你是好人,但爲什麼第一次goRoutine睡眠和其他例程等待呢? –
好的,我明白了。它似乎只是goRoutines等待它,但事實上時間已經過去了一次,一個併發「時刻」正確嗎? –
讓四個人在一起,並告訴他們等待四秒鐘,然後說點什麼。怎麼了? – Dustin