下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第详解Golang并发操作中常见的死锁情形我们可以看到,这条协程开辟在将数字写入到管道之后,因为没有人读,管道就不能写,然后写入管道的操作就一直阻塞。这时候你就有疑惑了,不是开辟了一条协程在读吗?但是那条协程开辟在写入管道之后,如果不能写入管道,就开辟不了协程。
第三种情形:管道读写时,相互要求对方先读/写
如果相互要求对方先读/写,自己再读/写,就会造成死锁。
funcmain(){
chHusband:=make(chanint,0)
chWife:=make(chanint,0)
gofunc(){
select{
case-chHusband:
chWife-888
select{
case-chWife:
chHusband-888
先来看看老婆协程,chWife只要能读出来,也就是老婆有钱,就给老公发个八百八十八的大红包。
再看看老公的协程,一看不得了,咋啦?老公也说只要他有钱就给老婆包个八百八十八的大红包。
两个人都说自己没钱,老公也给老婆发不了红包,老婆也给老公发不了红包,这就是死锁!
第四种情形:读写锁相互阻塞,形成隐形死锁
先来看一看代码:
funcmain(){
varrmw09sync.RWMutex
ch:=make(chanint,0)
gofunc(){
rmw09.Lock()
ch-123
rmw09.Unlock()
gofunc(){
rmw09.RLock()
x:=-ch
fmt.Println("读到",x)
rmw09.RUnlock()
for{
runtime.GC()
}
这两条协程,如果第一条协程先抢到了只写锁,另一条协程就不能抢只读锁了,那么因为另外一条协程没有读,所以第一条协程就写不进。
如果第二条协程先
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东东营锦苑大地幼儿园招聘幼儿园教师1人考试参考题库及答案解析
- 2026广东佛山市中医院三水医院招聘医疗辅助人员1人考试参考试题及答案解析
- 2026上半年四川成都市大邑县医疗卫生事业单位考核招聘高层次人才23人备考题库及参考答案详解【培优a卷】
- 2026湖北恩施州事业单位专项招聘147人考试参考题库及答案解析
- 2026年锦泰财产保险股份有限公司校园招聘笔试备考题库及答案解析
- 2026年中南工程咨询设计集团有限公司校园招聘考试模拟试题及答案解析
- 2026年江苏省农村信用社联合社校园招聘笔试模拟试题及答案解析
- 2026江苏苏州市吴江区引进教育重点紧缺人才25人考试参考试题及答案解析
- 2026年勘探分公司校园招聘笔试备考题库及答案解析
- 2026浙江事业单位统考温州市洞头区招聘22人备考题库【研优卷】附答案详解
- 英语书法欣赏课件
- 老年人健康管理-老年人健康管理服务规范
- 机械设备专业题库考试题库
- 含油污泥来源与处理方法综述
- 医疗器械说明书和标签管理规定培训课件
- 第三节东北地区的产业分布课件
- 兽医法律法规辅导课件
- 《课间十分钟》-完整版课件
- Illustrator-CC完整版ppt全套课件整本书电子教案最全教学教程
- 变动成本法和完全成本法课件
- 施工升降机回顶方案
评论
0/150
提交评论