当前位置:网站首页>【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>
边栏推荐
猜你喜欢
随机推荐
关于数字化转型 你需要知道的八项指导原则
基于JSP&Servlet实现的众筹平台系统
求连续90日每日的用户留存率 -- 全网唯一
Uni drop-down selection menu function/lazy loading images
这 6 款在线 PDF 转换工具,得试
使用Xshell和Xftp7跑学校服务器记录
redis常见面试题(背诵篇)
换掉 UUID,更快、更安全!
xss内容总结
详解微处理器CPU的系统结构
C51 存储类型与存储模式
A review of deep learning for beginners!
Micro combat | centralized configuration service center Config asymmetric encryption and security management
AVH部署实践 (一) | 在Arm虚拟硬件上部署飞桨模型
【Try to Hack】IDS入侵检测系统
从一道面试题说起:GET 请求能传图片吗?
RestTemplate下载文件的另一种方式
字典树笔记(自用)
深圳见!云原生加速应用构建专场:来看云原生 FinOps、SRE、高性能计算场景最佳实践
自动化配置SSH免密登录和取消SSH免密配置脚本










