博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
channel vs mutex
阅读量:4524 次
发布时间:2019-06-08

本文共 495 字,大约阅读时间需要 1 分钟。

记录许总演讲PPT指出的实践:

channel
– 本质上是一个 MessageQueue
– 非常正统的执行体间通讯设施
• sync.Mutex/RWMutex/Cond/etc
– 不要把 channel 当做万金油,该 Mutex 还是要
• 误区
– 用 channel 来做互斥 ( 正常应该让 Mutex 做 )
• 比如多个 goroutine 访问一组共享变量
• channel 的成本
– 作为消息队列, channel 成本原高于 Mutex
– 成本在哪?
• channel 内部有 Mutex ,因为它本身属于共享变量
• channel 内部可能有 Cond ,用来等待或唤醒满足条件的
goroutine
• 出让 cpu 并且让另一个 goroutine 获得执行机会,这个切
换周期不低,远高于 Mutex 检查竞争状态的成本 ( 后者通常
只是一个原子操作 )
posted on
2014-09-12 14:45 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/zeeman/p/3968370.html

你可能感兴趣的文章
关于SDWebImage加载高清图片导致app崩溃的问题
查看>>
如何查看方法在哪里被调用
查看>>
HUE的自动化安装部署
查看>>
图片服务器(FastDFS)的搭建
查看>>
myBatis应用
查看>>
RuntimeError: DataLoader worker (pid 18255) is killed by signal: Killed.
查看>>
[PHP] 用AppServ一步到位安装PHP服务器
查看>>
mac brew install redis 报错
查看>>
Work? working!
查看>>
开源收藏
查看>>
profile default1
查看>>
Linux Too Many OpenFiles
查看>>
ural 1303 Minimal Coverage(贪心)
查看>>
学用MVC4做网站三:3.3更新栏目
查看>>
OnFileOpen与OnOpenDocument(转)
查看>>
时间戳(1532249295.179) 转日期格式(2018/07/22 16:48:15 179)
查看>>
单例模式
查看>>
Codeforces Round #470 (rated, Div. 2, based on VK Cup 2018 Round 1)A. Protect Sheep
查看>>
php用户名密码
查看>>
Mysql 更改最大连接数
查看>>