1 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
tl;博士
由于您從未向頻道寫入任何內(nèi)容,因此您的程序會(huì)在選擇案例語句上死鎖,您的程序會(huì)不斷生成值并將其添加到?jīng)]有使用者的頻道中。quitc
解釋
代碼正在等待將某些內(nèi)容添加到通道中。由于它沒有被寫入,程序繼續(xù)計(jì)算斐波那契數(shù)列。quit
并發(fā)編程與“標(biāo)準(zhǔn)”線性規(guī)劃非常不同。
您刪除的行將保證通道中有足夠的數(shù)據(jù)來結(jié)束節(jié)目,因?yàn)樵摵瘮?shù)僅在從中讀取該通道時(shí)結(jié)束。quitfib
for { // an infinite loop
case c <- x:
x, y = y, x+y
case <-quit:
fmt.Println("quit")
return // your only exit is here,
// which is only executed when data is read from the quit channel
}
您永遠(yuǎn)在計(jì)算值,您唯一的退出是寫入通道;但是,這永遠(yuǎn)不會(huì)發(fā)生。quit
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)