社区
Java SE
帖子详情
多线程死锁是怎么回事?
xujun581
2007-08-08 08:37:29
多线程死锁是怎么回事?能不能给几个例子,并说明怎么样解决,谢谢!
...全文
322
9
打赏
收藏
多线程死锁是怎么回事?
多线程死锁是怎么回事?能不能给几个例子,并说明怎么样解决,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tang2121690
2008-10-10
打赏
举报
回复
我想因该是二个人在河的二岸同时过一个独木桥吧。。。而双方在桥的中间相遇时都不肯退回让另一方通过。。这样就一直僵持在了桥上。。如同死锁。。。
godfather521
2007-09-06
打赏
举报
回复
楼上兄弟们说的很生动很型向了 我就不说了
要想详细了解 可以找本操作系统的书看看
wangjian_work
2007-09-06
打赏
举报
回复
两个人同时互砍!结果同时倒下。。。都OVER了,呵呵。。。
cyberpeng
2007-09-05
打赏
举报
回复
三个和尚没水喝
火龙果被占用了
2007-09-05
打赏
举报
回复
你握住他的把柄,他握住你的把柄,两个都被牵制住了。
free510
2007-09-02
打赏
举报
回复
通俗说就是一共就有一双筷子,你和我各拿一支,但是要吃饭的话必须得有两支筷子,而且咱们两个都想得到对方手里的筷子,这样就造成了两个人都不放弃自己的资源而且还想去抢占别人的资源,所以就造成了死锁!
zdjray
2007-08-08
打赏
举报
回复
推荐看 operating system 线程相关章节
简单的说就是一个线程想运行,但是需要另外一个线程唤醒
但是这个时候这个另外的线程也是睡着的,所以大家都睡着了
Broker_Yu
2007-08-08
打赏
举报
回复
简单说就是线程A想访问线程B占用的b资源,而同时,B想访问A占有的a资源,A和B都无法释放,访问想访问的资源,就造成了死锁.解决死锁可以用同步.
joejoe1991
2007-08-08
打赏
举报
回复
比如说线程一得到了对象A的锁 而又想得到对象B的锁
这时如果对象B的锁被线程二得到了 所以线程一只能等待
而线程二又想得到 对象A的锁 因为A的锁被线程一得到了 这时线程二也要等待
这个时候两个线程都阻塞了 造成了死锁
计算机操作系统(第三版)
《计算机操作系统》可作为计算机硬件和软件以及计算机通信专业的本科生教材,也可作为从事计算机及通信工作的相关科技人员的参考书。 目录 第一章 操作系统引论 1.1 操作系统的目标和作用 1 1.1.1 操作系统的目标 1 1.1.2 操作系统的作用 2 1.1.3 推动操作系统发展的主要动力 4 1.2 操作系统的发展过程 5 1.2.1 无操作系统的计算机系统 5 1.2.2 单道批处理系统 6 1.2.3 多道批处理系统 7 1.2.4 分时系统 9 1.2.5 实时系统 11 1.2.6 微机操作系统的发展 12 1.3 操作系统的基本特性 14 1.3.1 并发性 14 1.3.2 共享性 15 1.3.3 虚拟技术 16 1.3.4 异步性 17 1.4 操作系统的主要功能 18 1.4.1 处理机管理功能 18 1.4.2 存储器管理功能 19 1.4.3 设备管理功能 21 1.4.4 文件管理功能 21 1.4.5 操作系统与用户之间的接口 22 1.5 OS结构设计 24 1.5.1 传统的操作系统结构 24 1.5.2 客户/服务器模式 26 1.5.3 面向对象的程序设计 27 1.5.4 微内核OS结构 29 习题 33 第二章 进 程 管 理 2.1 进程的基本概念 34 2.1.1 程序的顺序执行及其特征 34 2.1.2 前趋图 35 2.1.3 程序的并发执行及其特征 36 2.1.4 进程的特征与状态 37 2.1.5 进程控制块 41 2.2 进程控制 43 2.2.1 进程的创建 43 2.2.2 进程的终止 45 2.2.3 进程的阻塞与唤醒 46 2.2.4 进程的挂起与激活 47 2.3 进程同步 47 2.3.1 进程同步的基本概念 47 2.3.2 信号量机制 50 2.3.3 信号量的应用 53 2.3.4 管程机制 55 2.4 经典进程的同步问题 58 2.4.1 生产者—消费者问题 58 2.4.2 哲学家进餐问题 61 2.4.3 读者—写者问题 63 2.5 进程通信 65 2.5.1 进程通信的类型 65 2.5.2 消息传递通信的实现方法 66 2.5.3 消息传递系统实现中的若干问题 68 2.5.4 消息缓冲队列通信机制 69 2.6 线程 71 2.6.1 线程的基本概念 72 2.6.2 线程间的同步和通信 75 2.6.3 线程的实现方式 77 2.6.4 线程的实现 78 习题 81 第三章 处理机调度与
死锁
3.1 处理机调度的层次 84 3.1.1 高级调度 84 3.1.2 低级调度 86 3.1.3 中级调度 87 3.2 调度队列模型和调度准则 88 3.2.1 调度队列模型 88 3.2.2 选择调度方式和调度算法的若干准则 90 3.3 调度算法 91 3.3.1 先来先服务和短作业(进程)优先调度算法 91 3.3.2 高优先权优先调度算法 93 3.3.3 基于时间片的轮转调度算法 95 3.4 实时调度 97 3.4.1 实现实时调度的基本条件 97 3.4.2 实时调度算法的分类 99 3.4.3 常用的几种实时调度算法 100 3.5 产生
死锁
的原因和必要条件 103 3.5.1 产生
死锁
的原因 103 3.5.2 产生
死锁
的必要条件 105 3.5.3 处理
死锁
的基本方法 105 3.6 预防
死锁
的方法 106 3.6.1 预防
死锁
106 3.6.2 系统安全状态 107 3.6.3 利用银行家算法避免
死锁
108 3.7
死锁
的检测与解除 111 3.7.1
死锁
的检测 111 3.7.2
死锁
的解除 113 习题 114 第四章 存 储 器 管 理 4.1 存储器的层次结构 116 4.1.1 多级存储器结构 116 4.1.2 主存储器与寄存器 117 4.1.3 高速缓存和磁盘缓存 117 4.2 程序的装入和链接 118 4.2.1 程序的装入 118 4.2.2 程序的链接 120 4.3 连续分配方式 121 4.3.1 单一连续分配 121 4.3.2 固定分区分配 122 4.3.3 动态分区分配 123 4.3.4 伙伴系统 126 4.3.5 哈希算法 126 4.3.6 可重定位分区分配 127 4.3.7 对换 129 4.4 基本分页存储管理方式 130 4.4.1 页面与页表 130 4.4.2 地址变换机构 131 4.4.3 两级和多级页表 133 4.5 基本分段存储管理方
多线程
- 什么是线程
死锁
?怎么避免?
线程
死锁
是指两个或多个线程相互等待对方释放锁资源,导致所有线程都无法继续执行的一种情况。如果不处理,
死锁
会导致应用程序的异常终止,降低系统的可用性。线程
死锁
的避免可以从以下几个方面入手:1、避免一个线程同时获取多个锁。如果不可避免,可以统一获取锁的顺序,避免交叉获取锁导致
死锁
。2、避免一个线程在等待另一个线程持有的锁的同时,还持有自己的锁。可以在持有锁的时候,尽快处理完需要持有锁的逻辑,释放锁资源。3、尽量减少锁的持有时间。可以使用并发容器等无锁数据结构,减少锁的竞争。
什么是线程
死锁
?如何避免
死锁
?
1. 什么是线程
死锁
线程
死锁
描述的是这样一种情况:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方的资源,所以这两个线程就会互相等待而进入
死锁
状态。 下面的代码模拟了上图的
死锁
的情况 public class DeadLockDemo { private static Object resource1 = new Object();//资源 1
什么是线程
死锁
?如何避免
死锁
?
线程
死锁
:多个线程同时被阻塞,他们中的一个或者全部在等待某个资源被释放,由于线程被无限期的阻塞,因此程序不可能正常终止。产生
死锁
必须具备的四个条件: 1.互斥条件:该资源任意时刻只由一个线程占用。 2. 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 3. 不剥夺条件:线程已获得的资源在未使用完之前不能被其他线程强行剥夺,只有自己使用完之后才释放资源。 4. 循环等待条件:若干个进程之间形成一种头尾相接的循环等待资源关系。 如何避免线程
死锁
(破坏其中一个条件即可): 1.
面试官:什么是
死锁
?
死锁
产生的原因?如何避免
死锁
?
死锁
几乎是面试必考的内容之一,本文开始介绍了什么是
死锁
然后又举哲学家吃饭的例子说明了
死锁
产生的原因,又介绍了如何使用idea来查看程序是否产生
死锁
,最后介绍了如何避免
死锁
的方法
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章