返回信息流写了一个死锁的程序,但是运行的时候没出现死锁现象,各位大神帮我看看是怎么回事
这是一条镜像帖。来源:北邮人论坛 / java / #39828同步于 2015/4/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
java死锁
shuoshu
2015/4/8镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 shuoshu 的大作中提到: 】
: 写了一个死锁的程序,但是运行的时候没出现死锁现象,各位大神帮我看看是怎么回事
附件(894B) TestDeadLock.java
if (flag == 1) {
synchronized(o1){
try{
Thread.sleep(10);
}catch(InterruptedException e){
e.printStackTrace();
}
synchronized(o2){
System.out.println("1");
}
}
}
if (flag == 0) {
synchronized(o2){
try{
Thread.sleep(10);
}catch(InterruptedException e){
e.printStackTrace();
}
synchronized(o1){
System.out.println("0");
}
}
}
}
这样就会死锁,当你得到了o1时还要请求o2,但同时o2也要请求o1,即循环等待
【 在 sgoal 的大作中提到: 】
: [code=java]
: if (flag == 1) {
: synchronized(o1){
: ...................
嗯。就是这样。
谢谢谢谢,Orz,我想了好久都没想到这个~
【 在 sgoal 的大作中提到: 】
: [code=java]
: if (flag == 1) {
: synchronized(o1){
: ...................