- 0
- 0
- 约7.28千字
- 约 45页
- 2022-11-17 发布于重庆
- 举报
3.4.1 线程死锁 死锁(DeadLock),是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象。此时称系统处于死锁状态,这些永远在互相等待的线程称为死锁线程。 产生死锁的四个必要条件是: 互斥条件:资源每次只能被一个线程使用。如前面的“线程同步代码段”,就是只能被一个线程使用的典型资源; 请求与保持条件:一个线程请求资源,但因为某种原因,该资源无法分配给它,于是该线程阻塞,此时,它对已获得的资源保持不放; 不剥夺条件:进程已获得的资源,在未使用完之前,不管其是否阻塞,无法强行剥夺; 循环等待条件:若干进程之间互相等待,形成一种头尾相接的循环等待资源关系。 这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。 第三十页,共四十五页。 3.4.2 案例分析 以Java语言为例,死锁一般来源于代码段的同步,当一段同步代码被某线程运行时,其他线程可能进入堵塞状态(无法抢占CPU),而刚好在该线程中,访问了某个对象,此时,除非同步锁定被解除,否则其他线程就不能访问那个对象。这可以称为“线程正在等待一个对象资源”。如果出现一种极端情况,一个线程等候另一个对象,而另一个对象又在等候下一个对象,以此类推。这个“ 等候链”如果进入封闭状态,也就是说,最后那个对象等候的是第一个对象,此时,所有线程都会陷入无休止的相互等待
您可能关注的文档
- 物流配运实务讲座(庄老师).ppt
- 物流配运实务培训教材.ppt
- 文化生活知识体系及重点讲义.ppt
- 提升团队执行力培训课件.ppt
- 社区卫生服务的质量管理.ppt
- 塑料原料与助剂.ppt
- 社会群体与消费者购买行为概述.ppt
- 实验证实了两静止电荷间存在相互作用的静电力.ppt
- 审计规范与法律责任培训课件.ppt
- 现代管理思想的演进.ppt
- 以史为鉴,推演 AI 浪潮下广告产业链变革路径.docx
- 光纤光缆行业深度驱动因素竞争格局产业链瓶颈及相关公司深度梳理.docx
- 支持企业发展政策汇编.docx
- 江苏省存量空间盘活焕新规划和土地政策应用案例集 第3期 深化存量资源盘活利用赋能古城保护更新试点.docx
- 深圳“20+8”产业集群三版本对比分析报告 迭代演进脉络·产业门类调整·战略意图研判.docx
- IVD注册知识培训.docx
- 阿联酋人工智能基础设施发展模式研究报告2026.docx
- 福建省科技创新政策汇编.docx
- 2026年中国液流电池行业发展现状与前景分析报告.docx
- 支付嵌入、制度激励与货币市场基金韧性 ——基于微观交易数据的实证研究.docx
原创力文档

文档评论(0)