为了账号安全,请及时绑定邮箱和手机立即绑定

关于Go语言中channel的问题。

关于Go语言中channel的问题。

慕莱坞森 2019-04-07 09:38:37
刚开始学习Go,看到gorountine和channel的时候试了试下面这个例子:packagemainimport("fmt")funcdisplay(msgstring,cchanbool){fmt.Println("displayfirstmessage:",msg)c
查看完整描述

2 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

程序只需要做一点点小小的改动
packagemain
import(
"fmt"
)
funcdisplay(msgstring,cchanbool){
//交换这2行的位置
c<-true
fmt.Println("displayfirstmessage:",msg)
}
funcmain(){
c:=make(chanbool)
godisplay("hello",c)
godisplay("world",c)
<-c
}
原因就是你的源程序是先输出在锁定,当然两个都会显示出来,
如果你先锁定在输出,只有当你使用了<-c的时候才会有一个被解锁输出出来显示
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 486 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号