• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go并发设计

原作者: [db:作者] 来自: [db:来源] 收藏 邀请


goroutine(极少的栈内存,比thread更易用、更高效、更轻便)


runtime.Gosched()表示把CPU时间片让给别人,下次某个时候恢复执行该goroutine


想要发挥多核处理器的并行,设置runtime.GOMAXPROCS(n)


默认情况下,channel接受和发送数据都是阻塞的,除非另一端已经准备好,这样就使得goroutines同步变的更加的简单,而不需要显示的lock。


ch:=make(chan type,value)

value==0 ! 无缓冲(阻塞)

value>0  !缓冲 (非阻塞,直到value个元素)


range 能够不断的读取channel里面的数据,直到该channel被显示的关闭。

生产者通过关键字close函数关闭channel,


如果存在多个channel,Go提供了关键字select,通过select可以监听channel上的数据流动。select默认是阻塞的,只有当监听的channel中有发送或者接受可以进行时才会运行。,当多个channel都准备好的时候, select是随机的选择一个执行的。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
解决gogetgolang.org/x/*拉取失败问题发布时间:2022-07-10
下一篇:
史上最全Go语言知识图谱发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap