当前位置:网站首页>【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>
边栏推荐
- c语言字符和字符串总结
- WOLFLAB一方老师带你解读虚拟云网络《VMware NSX-T卷2》-1
- 《外太空的莫扎特》
- 广州消防:高温天气火灾频发 消防安全不容忽视
- Work Efficiency - Fifteen minutes allows you to quickly learn Markdown syntax to proficient in typesetting practice notes
- ST表(动态规划倍增思路离线维护区间极值问题)
- arcpy脚本制作arcgis工具箱注意事项
- ArcGIS Molder Builder模型构建器基本知识
- 详解微处理器CPU的系统结构
- Linux安装MySQL(超详细)
猜你喜欢
随机推荐
小米法务部:成功打击一处伪造Redmi蓝牙耳机窝点,查扣假冒伪劣产品2032个
C语言 5:bool类型,关系表达式,逻辑表达式,分支语句,函数调用机制,break,continue,goto,return/exit跳转语句
【7.22-7.29】写作社区精彩技术博文回顾
兆骑科创赛事活动承办,项目路演,人才引进平台
一文详解8086微处理器系统结构
【IIC通信】Chap.2 (I2C)IIC协议的特点;为什么IIC需要开漏输出、上拉电阻?
Immediate experience with CTS - | D further promotion application equipment compatibility
ArcGIS Pro与ArcGis区别
基于SSM实现在线聊天系统
深度卷积生成对抗网络
【 LeetCode 】 88. Merging two orderly array
Learning Policies for Adaptive Tracking with Deep Feature Cascades全文翻译
进入中国27年,又一美妆巨头要离场
WOLFLAB一方老师为什么要写网络虚拟化《VMware NSX-T卷2》路由架构-2
论人生自动化
ArcGIS Molder Builder模型构建器基本知识
测试时间的评估:开发时间的1/3~1/2
<老式喜剧>
极市直播丨严彬-Unicorn:走向目标跟踪的大一统(ECCV2022 Oral)
观光公交题解









