第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取錯誤:所有 goroutine 都處于睡眠狀態(tài) - 死鎖

獲取錯誤:所有 goroutine 都處于睡眠狀態(tài) - 死鎖

Go
ITMISS 2021-11-08 16:50:34
為什么像這樣簡單的事情不起作用?c1 := make(chan string)c1 <- "foo"fmt.Println(<-c1)但是如果我把它放在一個 go 例程中它會起作用嗎?c1 := make(chan string)go func() {    c1 <- "foo"}()fmt.Println(<-c1)這個問題可能看起來簡單而愚蠢,但我試圖理解為什么我不能這樣做,在這種情況下我不知道有什么更好的問題可以問。
查看完整描述

1 回答

?
夢里花落0921

TA貢獻(xiàn)1772條經(jīng)驗 獲得超6個贊

通道 c1 是一個無緩沖通道。只有當(dāng)發(fā)送方和接收方都準(zhǔn)備好時,才能在無緩沖通道上成功通信。


線路c1 <- "foo永遠(yuǎn)阻塞,因為沒有接收器準(zhǔn)備好。


帶有 goroutine 的程序可以工作,因為發(fā)送和接收 goroutine 會運行到發(fā)送方和接收方都準(zhǔn)備就緒的點。


該程序也將起作用:


c2 := make(chan string, 1) // <-- note channel size of one

c2 <- "foo"

fmt.Println(<-c2)

通道 c2 在這個程序中被緩沖。c2 <- "foo"由于緩沖區(qū)未滿,發(fā)送繼續(xù)進(jìn)行。


查看完整回答
反對 回復(fù) 2021-11-08
  • 1 回答
  • 0 關(guān)注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號