最贊回答 / 根號(hào)三百萬(wàn)
向channel寫入或者讀取數(shù)據(jù)都是阻塞的,不開goroutine的話代碼上面的代碼就阻塞在 out <- r , 當(dāng)然就死鎖了。開gouroutine的話應(yīng)該不會(huì)吧,你可以貼下代碼看看
2018-10-31
最新回答 / 芭菲雨
換了一個(gè)端口號(hào)就可以了,就是很奇怪之前的8888端口無(wú)法訪問(wèn)的錯(cuò)誤界面,只是顯示空白頁(yè),還是不知道為什么
2018-10-26
最新回答 / Liu_HongYe
哦,我懂了,在InMemSort中, 數(shù)據(jù)沒(méi)有處理完, chan是沒(méi)有close的, 那么這個(gè)chan就會(huì)阻塞掉, 一直不會(huì)把監(jiān)聽的數(shù)據(jù)準(zhǔn)備好.
2018-09-04
最新回答 / Liu_HongYe
for循環(huán)執(zhí)行時(shí)需要時(shí)間的, 在for循環(huán)未執(zhí)行完成之前, 前面go語(yǔ)句生成的goroutine就已經(jīng)執(zhí)行了, 所以會(huì)有一部分的輸出出現(xiàn).
2018-08-31
最贊回答 / 慕粉329807310
11分45秒的時(shí)候老師解釋了,createPipeline只是創(chuàng)建了pipeline,也就是把一個(gè)文件分成了chunkCount個(gè)小快,各放上了一個(gè)channel,但是此時(shí)channel還是阻塞的,因?yàn)橐扔|發(fā)了ReadSource以后才這些通道才會(huì)開始不斷傳輸。因此在CreatePipeline里面是不能file.close的,需要把這些file句柄返回出來(lái),由外面close。老師說(shuō)因?yàn)椴幌氚堰@個(gè)示例搞的太復(fù)雜,所以就留下了這個(gè)坑。
2018-08-20
最新回答 / tokumi
defer的效果是從最后向前依次執(zhí)行需要defer的語(yǔ)句,也就說(shuō)需要defer操作的引用都會(huì)被存儲(chǔ)在一個(gè)??臻g。在??臻g里file指向的地址還是不同的地址,因此可以解決這個(gè)問(wèn)題。猜測(cè)是這樣,并沒(méi)有實(shí)際證據(jù)。
2018-08-20
最贊回答 / haoyun666
只有一個(gè)ready,那么第二個(gè)在讀取的時(shí)候會(huì)一直被等待呀,等到能讀取。如果其中一個(gè)讀數(shù)據(jù)不ok,那么證明已經(jīng)關(guān)閉了數(shù)據(jù)讀取完了,這是就拍另一個(gè)就行了。所以沒(méi)有問(wèn)題。
2018-07-30
最新回答 / 慕先生0298200
因?yàn)閕n只進(jìn)不出,所以加<-限制,不然in就可以進(jìn)出。同理返回值。不加也可以,加了代碼比較嚴(yán)謹(jǐn)。
2018-07-28