package DeadLock;
/*写一个两个线程死锁的程序
* coded by Jerome
*/
class MyDeadLock implements Runnable{
boolean flag;
static Object o1 = new Object();
static Object o2 = new Object();
public MyDeadLock(boolean flag){
this.flag = flag;
}
public void run(){
if(this.flag){
synchronized (o1) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO: handle exception
e.printStackTrace();
}
synchronized (o2) {
System.out.println("我没发生死锁");
}
}
}
else{
synchronized (o2) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO: handle exception
e.printStackTrace();
}
synchronized (o1) {
System.out.println("我也是");
}
}
}
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Thread t1 = new Thread(new MyDeadLock(true));
Thread t2 = new Thread(new MyDeadLock(false));
t1.start();
t2.start();
}
}
控制台什么也没有显示,说明该程序发生了死锁