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

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

GO 協(xié)程 為什么這樣會造成死鎖

GO 協(xié)程 為什么這樣會造成死鎖

肥皂起泡泡 2019-05-11 16:42:32
packagemainimport("fmt")funcf1(inchanint){fmt.Println(
查看完整描述

3 回答

?
ThomasHuke

TA貢獻5條經(jīng)驗 獲得超2個贊

package?main

import?(
???"fmt"
???"time"
)

func?f1(in?chan?int)?{
???fmt.Println(<-in)
}
func?main()?{
???out?:=?make(chan?int)
???go?func()?{
??????out?<-?2
???}()

????f1(out)
???time.Sleep(time.Second)
}



//或者:


package?main

import?(
???"fmt"
???"time"
)

func?f1(in?chan?int)?{
???fmt.Println(<-in)
}
func?main()?{
???out?:=?make(chan?int,2)
???out?<-?2
???go?f1(out)
???time.Sleep(time.Second)
}


查看完整回答
反對 回復 2019-05-22
?
嗶嗶one

TA貢獻1854條經(jīng)驗 獲得超8個贊

改成這樣:
packagemain
import(
"fmt"
)
funcf1(inchanint){
fmt.Println(<-in)
}
funcmain(){
out:=make(chanint)
gof1(out)
out<-2
}
因為你make是不帶緩沖的chan所以chan需要有人消費才能寫入,不然會阻塞因此還有第二種方法,生成帶緩沖的chan:
make(chanint,1)
                            
查看完整回答
反對 回復 2019-05-11
?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

out隊列無緩沖,主線程會阻塞在這里。解決方法有兩個。
第一,設置緩沖:
packagemain
import(
"fmt"
)
funcf1(inchanint){
fmt.Println(<-in)
}
funcmain(){
out:=make(chanint,1)
out<-2
gof1(out)
}
第二,將gof1(out)提前:
packagemain
import(
"fmt"
)
funcf1(inchanint){
fmt.Println(<-in)
}
funcmain(){
out:=make(chanint)
gof1(out)
out<-2
}
                            
查看完整回答
反對 回復 2019-05-11
  • 3 回答
  • 0 關注
  • 960 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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