最新回答 / 天道酬勤ksl
注意 無緩沖區(qū)通道, 兩端是可以保證原子性的?打印不出來?不是因?yàn)橥ǖ罌]來得及輸出而是 print? 這個函數(shù)沒來得及刷新 os 緩沖區(qū)就被主進(jìn)程強(qiáng)行關(guān)掉了,?
2022-02-09
最新回答 / 慕虎4228555
這是因?yàn)閏h<- 1 這個操作,是阻塞操作,就是說 遇到了 a<-1 代碼就不走了,什么時候代碼往下走?必須等到ch里面的消息被讀出去才會繼續(xù)走可以簡單改為:
ch?:=?make(chan?int) //?fmt.Println(ch) go?func()?{ ???ch?<-?1 }() //?輸出channel go?func()?{ ???fmt.Println(<-ch) }() time.Sleep(time.Second*2)
講師回答 / 凰凰
小伙伴客氣啦!其實(shí)流水線形式也是可以的,這里只是提供了一種可能的案例在提問中提到的流水線形式,可能會存在一種,由于頻繁使用channel傳輸數(shù)據(jù)的形式,而造成一定程度的額外耗時所以我們在設(shè)計(jì)并發(fā)代碼的時候,在某些為了通過并發(fā)加速計(jì)算的場景下,通常會盡可能地避免使用到channel
2020-11-07
最新回答 / 慕粉3723448
已經(jīng)添加上了吧