请分析此例子为什么会出现死锁?
来源:互联网 发布:黄金时代知乎 编辑:程序博客网 时间:2024/05/17 22:34
程序中若要进行资源共享就要进行同步(synchronized()),但是同步用的过多就会出现死锁的现象!
public class DeadThread implements Runnable { Bangjiafang b = new Bangjiafang(); GeGe g = new GeGe(); public DeadThread() { new Thread(this).start(); b.say(g); } @Override public void run() { // TODO Auto-generated method stub g.say(b); } public static void main(String[] args) { new DeadThread(); }} class Bangjiafang { public synchronized void say(GeGe g) { System.out.println("给我500W,放你妹"); g.fun(); } public synchronized void fun() { System.out.println("绑架犯得到了500w,放了妹妹"); }}class GeGe { public synchronized void say(Bangjiafang b) { System.out.println("放妹,给你500w"); b.fun(); } public synchronized void fun() { System.out.println("哥哥救出妹妹,损失了500w"); }}
运行后
给我500W,放你妹放妹,给你500w
绑架犯既没有得到500w,哥哥也没有救出妹妹,双方一直是处于一种等待僵持的状态,即所谓线程死锁。
阅读全文
0 0
- 请分析此例子为什么会出现死锁?
- 为什么会出现死锁
- SQL死锁的原因分析使用SQL Server Profiler来监视为什么会死锁
- 这程序哪里出现了问题,为什么会出现此问题?
- 为什么会出现LNK2005
- springMVC_02_为什么会出现
- Hbase为什么会出现
- 为什么会出现DevOps?
- 请解释一下为什么会出现浮动和什么时候需要清除浮动?清除浮动的方式?
- 求解:为什么会出现错误代码?
- 为什么会出现 Ad exchange?
- 为什么会出现这种局面
- 电脑为什么会出现蓝屏
- 为什么会出现依赖冲突
- 为什么会出现long_schedule 问题.
- java出现死锁的一个例子
- 【面试】请写一个java死锁的例子
- SQL常见死锁例子及分析
- Tocmat-logger4j.properties和log4j.xml的区别
- 详解NTFS文件系统
- 最常用的20个正则表达式,亲测可用!
- 人工智能-一种现代的方法 全文总览
- oracle数据库下导出、导入某个用户下的所有相关信息,包括表、存储过程和视图
- 请分析此例子为什么会出现死锁?
- Fragment全面解析
- 靠脸吃饭变热点_你看好人脸识别技术吗?
- Linux文件打包与压缩
- 七个结构型模式2:桥接模式-Bridge Pattern【学习难度:★★★☆☆,使用频率:★★★☆☆】
- java.lang.InstantiationException 实例化异常
- Mac OS X内核编程,MAC驱动开发资源汇总
- 2017 ACM/ICPC Asia Regional Qingdao Online
- 单例模式讨论篇:单例模式与垃圾回收