一个死锁的例子

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

public class AnotherDeadLock {

public static void main(String[] args) {

final Object resource1 = "resource1";

final Object resource2 = "resource2";

// t1 tries to lock resource1 then resource2

Thread t1 = new Thread() {

public void run() {

// Lock resource 1

synchronized (resource1) {

System.out.PRintln("Thread 1: locked resource 1");

try {

Thread.sleep(50);

} catch (InterruptedException e) {

}

synchronized (resource2) {

System.out.println("Thread 1: locked resource 2");

}

}

}

};

// t2 tries to lock resource2 then resource1

Thread t2 = new Thread() {

public void run() {

synchronized (resource2) {

System.out.println("Thread 2: locked resource 2");

try {

Thread.sleep(50);

} catch (InterruptedException e) {

}

synchronized (resource1) {

System.out.println("Thread 2: locked resource 1");

}

}

}

};

// If all goes as planned, deadlock will occur,

// and the program will never exit.

t1.start();

t2.start();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有