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

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

如何使用?看代码:协程

输出:blog

释义:资源

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

如何避免:cpu

放开26行,30行即可img

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

 ==== RWMutex为读写锁错误

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

相关文章
相关标签/搜索