覆蓋緩沖區(qū)通道超過其容量確實(shí)會(huì)產(chǎn)生任何影響?由于有另一個(gè)go例程和主要的go例程沒有加入它,所以這里沒有死鎖 package main import "fmt" func main() { ch := make(chan int, 2) go func (){ ch <- 1 ch <- 2 ch <- 4//blocks here but scheduler picked up another go routine ch <- 6 ch <- 10 //close(ch) }() fmt.Println(<-ch) fmt.Println(<-ch) //for v:=range ch{ //fmt.Println(<-ch)//1 2 4 6 10 //} }
1 回答

萬千封印
TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
因此,這里沒有僵局
A 確實(shí)不會(huì)檢測(cè)到爭(zhēng)用條件。go build -race .
但是沒有死鎖的主要原因,是主函數(shù)在第二個(gè)之后退出。fmt.Println(<-ch)
即使匿名的戈魯廷被封鎖了,all程序也會(huì)停止。ch <- 4
- 1 回答
- 0 關(guān)注
- 81 瀏覽
添加回答
舉報(bào)
0/150
提交
取消