当前位置:网站首页>【GoLang】同步锁
【GoLang】同步锁
2022-07-29 14:53:00 【51CTO】
博主介绍: 自媒体 JavaPub 独立维护人,全网粉丝15w+,csdn博客专家、java领域优质创作者,51ctoTOP10博主,知乎/掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、
GoLang
技术领域和副业。
Table of Contents
同步锁
golang当中提供了两种常用的锁。
一种是 sync.Mutex
(互斥锁) 另外一种是 sync.RWMutex
(读写锁)
Mutex,它就是最简单最基础的同步锁,当一个goroutine持有锁的时候,其他的goroutine只能等待到锁释放之后才可以尝试持有。
RWMutex 是读写锁的意思,它支持一写多读,也就是说允许支持多个goroutine同时持有读锁,而只允许一个goroutine持有写锁。当有goroutine持有读锁的时候,会阻止写操作。当有goroutine持有写锁的时候,无论读写都会被堵塞。
案例
假设我们当前有多个goroutine,但是我们只希望持有锁的goroutine执行,我们可以这么写:
RWMutex区分了读写锁,所以我们一共会有4个api,分别是Lock, Unlock, RLock, RUnlock。Lock和Unlock是写锁的加锁以及解锁,而RLock和RUnlock自然就是读锁的加锁和解锁了。
面试题
Go 当中同步锁有什么特点?作用是什么?
- 阻塞。用于并发操作之间数据的安全保障。
<center>
<font face=“黑体” color=“red” size=“4”>回复1024,获取学习路线思维导图、加入GO计划学习</font>
</center>
边栏推荐
猜你喜欢
随机推荐
arcgis中编码方式改变引起的shp文件乱码、字符截断问题处理
【ArcGIS微课1000例】0030:ArcGIS利用MXD doctor工具分析并修复mxd地图文档
软件测试架构师的工作日常
详解微处理器CPU的系统结构
手摸手实现Canal如何接入MySQL实现数据写操作监听
建议尽快优化搜索体验
工作效率-十五分钟让你快速学习Markdown语法到精通排版实践备忘
广汽本田安全驾驶体验营,老司机的必修课
NLP自然语言处理-机器学习和自然语言处理介绍(三)
Realization of Online Chat System Based on SSM
令人难以置信的DeepMind数据库现在包括了科学界已知的几乎所有蛋白质
uni 的下拉式筛选菜单的功能/图片懒加载
53 LeetCode 】 【. Most architectural array and
深度学习-神经网络
AOP implementation enterprise API access interface monitoring (via Google Guava cache data)
自动化配置SSH免密登录和取消SSH免密配置脚本
ArcGIS Molder Builder模型构建器基本知识
立足本土,链接全球 | 施耐德电气“工业SI同盟”携手伙伴共赴未来工业
Uni drop-down selection menu function/lazy loading images
AOP实现企业级API访问接口监控(通过Google Guava缓存数据)