最贊回答 / 慕碼人35538549
這不是死鎖,你在Read()函數(shù)中WG.add()調(diào)用了幾次,就需要WG.Done()調(diào)用相同的次數(shù),否則主函數(shù)中的WG.Wait()會(huì)一直等不到條件實(shí)現(xiàn),就卡住了。
2021-04-02
main函數(shù)下面的Sleep其實(shí)應(yīng)該可以去掉了,wg會(huì)阻塞住所有的協(xié)程直到協(xié)程執(zhí)行完
2021-03-13
使用select最好別用for{}死循環(huán)吧,最好給一個(gè)能觸發(fā)break或return的chan
2021-03-13
新手會(huì)很容易犯的錯(cuò)誤,使用slice:=make([]int, 2),直接使用slice=append(slice, 3)。打印一下slice結(jié)果、len()、cap(),會(huì)發(fā)現(xiàn)append調(diào)用后,會(huì)直接擴(kuò)容,并將元素塞到切片尾部。
2021-03-13