扫码订阅《 Go语言面试题精讲》或
入驻星球
,即可阅读文章!
在此填写券码订阅!
订阅
GOLANG ROADMAP · 知识星球
阅读模式
沉浸
自动
日常
首页
Go路线图
👶 初级要求:负责一个模块
📗 薪资·10-15k 技能梳理
🧑 中高级要求:负责一个方向
📘 薪资·15-25k 技能梳理
🧔 资深要求:负责一个领域
📒 薪资·25-40k 技能梳理
🧙 专家要求:负责多个领域
📕 薪资·40k以上 技能梳理
Go学院
Go小课
Go小考
Go宝典
Go资源
推荐资源
优质课程
推荐图书
开源项目
资源下载
视频资源
文档资源
帮找资源
Go求职
求职刷题
企业题库
面试宝典
求职面经
求职服务
内推互助
求职助力
内推公司
推广返佣
返佣排行
返佣规则
推广学院
更多
用户中心
我的信息
我的消息
我的返佣
扫码订阅《 Go语言面试题精讲》或
入驻星球
,即可阅读文章!
在此填写券码订阅!
订阅
5. Go 有哪些方式安全读写共享变量?
caspar
【点击观看视频】 Go 有哪些方式安全读写共享变量?
方法
并发原语
备注
不要修改变量
sync.Once
不要去写变量,变量只初始化一次
只允许一个goroutine访问变量
Channel
不要通过共享变量来通信,通过通信(channel)来共享变量
允许多个goroutine访问变量,但是同一时间只允许一个goroutine访问
sync.Mutex、sync.RWMutex、原子操作
实现锁机制,同时只有一个线程能拿到锁