首页 > 其他 > 详细

golang 初体验 - 并发与锁.1 - sync.Mutex

时间:2019-02-21 19:17:21      阅读:185      评论:0      收藏:0      [点我收藏+]

==== Mutex为互斥锁,顾名思义,被Mutex锁住的代码同时只允许一个协程访问,其它协程进来就要排队

如何使用?看代码:

技术分享图片

输出:

技术分享图片

释义:

并发1000个协程同时更改m的元素,这样会有一部分更改成功,但是还有一部分会出现竟态,造成并发错误,输出结果很明了

如何避免:

放开26行,30行便可

作用是锁住临界区28行,这样就能保证28行同时只有一个协程访问,其他协程进来得排队,等待上一个协程释放资源,即解锁。

 ==== RWMutex为读写锁

允许多个读者访问共享资源,但是只能有一个写者。不能同时既有读者又有写者。读者的个数和cpu核心数相关,用户与Mutex相同

 

golang 初体验 - 并发与锁.1 - sync.Mutex

原文:https://www.cnblogs.com/Eysa/p/10414438.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!