[英]why does it seem that sleep doesn't work in goroutine
package main
import (
"fmt"
"time"
)
func main() {
c := make(chan struct{})
count := 1
go func() {
for {
fmt.Println("foo", count)
count++
time.Sleep(2)
}
c <- struct{}{}
}()
fmt.Println("Hello World!")
<-c
}
這是我的代碼,我發現它每個循環都沒有休眠2次,並迅速打印。 是什么原因呢? 我搜索的是睡眠將使goroutine放棄對cpu的控制,當再次獲得控制時,它將檢查自身是否正在睡眠?
time.Sleep的持續時間以納秒為單位,因此應延遲2秒;
time.Sleep(2000000000)
或者,正如@ Ainar-G在評論中指出的那樣,可讀性更好;
time.Sleep(2 * time.Second)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.