【Go】Channel实现原理

1.不同于传统意义上并发编程需要共享内存,Goroutine的channel采用消息模型避免直接的内存共享,降低了信息处理的复杂度

2.Channel只涉及传指针,因为make(chan)返回的是指针类型

  • chan := make(chan int) //初始化一个int类型的chan
  • chan <- v // 把v发送到通道chan
  • v := <- chan // 从chan接受数据并赋值给v

发送数据到channel主要就是做两件事:

  • 如果没有可用的reciever, 数据入列,否则线程阻塞
  • 如果有可用reciever,把数据从sender的栈空间拷贝到reciever的栈空间
全部评论

相关推荐

07-01 19:00
门头沟学院 Java
点赞 评论 收藏
分享
兄弟们,实习都是在接各种api,该怎么包装简历
仁者伍敌:感觉我自己做小项目也是各种api啊,我要怎么包装简历
点赞 评论 收藏
分享
05-20 21:57
已编辑
门头沟学院 Java
喜欢吃卤蛋的悲伤蛙在...:建信融通没消息吧,我2说有实习挂简历不理了
点赞 评论 收藏
分享
嵐jlu:我是山川🐔里🐔🧱的,阿里系简历全过; 你这简历一看就还是半成品啊,没有荣誉经历奖项什么的吗?
投递阿里巴巴集团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务