关于实现线程死锁的一个例子

来源:互联网 发布:国内外大数据现状分析 编辑:程序博客网 时间:2024/06/13 08:10
class DeadLock

{

//模拟两个对象

       private final Object obj1 = new Object();
private final Object obj2 = new Object();
public static void main(String[] args){
DeadLock dl = new DeadLock();
dl.testDeadLock();
//System.out.println("Hello World!");
}
public void testDeadLock(){
  new Thread(new Runnable(){
  public void run(){
 testSync(obj1,obj2);
System.out.println("obj1...");
  }     
  }).start();
  new Thread(new Runnable(){
  public void run(){
testSync(obj2,obj1);
System.out.println("obj2...");
  }
  
  }).start();
}
public static void testSync(Object obj,Object obje){

   synchronized(obj){
try{
 Thread.sleep(2*1000);
}catch(Exception e){
e.printStackTrace();
}
synchronized(obje){
try{
 Thread.sleep(2*1000);
}catch(Exception e){
e.printStackTrace();
}
 }
}
}
}
原创粉丝点击