您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

关于golang读写锁

2024/12/4 16:10:22发布25次查看
下面由golang教程栏目给大家介绍关于golang读写锁,希望对需要的朋友有所帮助!
golang读写锁,其特征在于
读锁:可以同时进行多个协程读操作,不允许写操作
写锁:只允许同时有一个协程进行写操作,不允许其他写操作和读操作
读写锁共有四个方法
rlock:获取读锁
runlock:释放读锁
lock:获取写锁
unlock:释放写锁
使用例子如下
package mainimport (    fmt    sync    time)var grwlock *sync.rwmutexvar gvar intfunc init() {    grwlock = new(sync.rwmutex)    gvar = 1}func main() {    var wg sync.waitgroup    go read(1, &wg)    wg.add(1)    go write(1, &wg)    wg.add(1)    go read(2, &wg)    wg.add(1)    go read(3, &wg)    wg.add(1)    wg.wait()}func read(id int, wg *sync.waitgroup) {    fmt.printf(read coroutine: %d start\n, id)    defer fmt.printf(read coroutine: %d end\n, id)    grwlock.rlock()    fmt.printf(gvar %d\n, gvar)    time.sleep(time.second)    grwlock.runlock()    wg.done()}func write(id int, wg *sync.waitgroup) {    fmt.printf(write coroutine: %d start\n, id)    defer fmt.printf(write coroutine: %d end\n, id)    grwlock.lock()    gvar = gvar + 100    fmt.printf(gvar %d\n, gvar)    time.sleep(time.second)    grwlock.unlock()    wg.done()}
以上就是关于golang读写锁的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product