首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
死锁原因如何打破如何查看死锁进程状态
[问答题]
请问死锁原因如何打破?如何查看死锁进程状态?
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(138)
分享
纠错
8个回答
添加回答
0
西瓜同学🏀
、死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。死锁的四个必要条件:
发表于 2019-04-30 22:31:06
回复(0)
更多回答
6
Allen烽
我这边提供下排查死锁的方式:
1)jps来查看java进程,然后jstack pid > a.txt 查看堆栈信息,这边就看得意看到死锁信息和造成死锁的原因
2)用jconsole连接,然后左下角有个检测死锁的按钮,点击可以看到死锁线程和死锁原因
发表于 2019-01-22 16:27:33
回复(0)
3
踟蹰千年
死锁是由于线程之间互相等待对方已经占用的锁,同时陷入阻塞状态,最简单的就是a拿到了锁1,要得到锁2,但是此时b线程占用了锁2,等待锁1,此时两个线程都会处于阻塞状态。通过打印堆栈信息可以看到当前jvm线程的情况
发表于 2019-01-17 08:00:30
回复(0)
2
柠小哀
死锁是指在一组进程中的各个进程均占有不会释放的资源 但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态 死锁的四个必要条件 1 互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。 2 请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。 3 非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。 4 循环等待条件(Circular wait):系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。 java中产生死锁可能性的最根本原因是 1 是多个线程涉及到多个锁 这些锁存在着交叉 所以可能会导致了一个锁依赖的闭环 2 默认的锁申请操作是阻塞的 避免死锁 1 破坏死锁的循环等待条件 2 破坏死锁的请求与保持条件 使用lock的特性 为获取锁操作设置超时时间 这样不会死锁(至少不会无尽的死锁) 3 设置一个条件遍历与一个锁关联 该方法只用一把锁 没有chopstick类 将竞争从对筷子的争夺转换成了对状态的判断 仅当左右邻座都没有进餐时才可以进餐 提升了并发度
发表于 2019-04-27 16:21:24
回复(0)
1
CMLX
死锁是线程之间互相等待对方已经占用的锁。 通过打印堆栈信息可以看到异常信息
发表于 2019-03-23 08:44:29
回复(0)
0
小贱贱XJJ
死锁时一组进程中各个进程占有互相不回释放的资源,但因申请被其他进程所占用的不会释放的资源而处于的一种永久等待条件。死锁的四个条件: 1、互斥条件: 资源不共享,只能由一个资源占用 2、循环条件 3、请求和保持条件 4、非剥离条件
发表于 2020-08-04 22:43:00
回复(0)
0
jiaozic
死锁主要是线程之间互相等待对方占用的锁,循环等待,占有并等待,非抢占,互斥性导致死锁
如何查看死锁状态:打印堆栈信息查看jvm线程状态
发表于 2020-06-09 09:29:02
回复(0)
0
Ly~
、死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。死锁的四个必要条件:
发表于 2019-05-05 23:56:30
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
测试工程师
Java
上传者:
小小
难度:
8条回答
138收藏
4658浏览
热门推荐
相关试题
3.下列关于表中西部省市区2006...
资料分析
言语理解与表达
资料分析
评论
(1)
4.该校1997年男女教师的比例为...
资料分析
言语理解与表达
资料分析
评论
(1)
计算机在工作过程中,若突然停电,(...
计算机常识
普及
C++
Pascal
选择题
评论
(1)
来自
NOIP2008初赛普及组
Mysql中表student_in...
数据库
SQL
评论
(1)
SQL中,下列涉及空值的操作不正确...
SQL
评论
(0)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题