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