黑马程序员——死锁

来源:互联网 发布:远程控制软件排行 编辑:程序博客网 时间:2024/05/16 08:42

 

                                                                      
                                          ----------------------    android培训    java培训   期待与您交流!    ----------------------   
                                              

 

package thread;
/**
 *线程的死锁:线程同步中嵌套同步,锁却不同
 * @author zjw
 *
 */
public class DeadLock {
 public static void main(String[] args) {
  Dead1 d=new Dead1(true);
  Dead1 d1=new Dead1(false);
  new Thread(d).start();
  new Thread(d1).start();
 }
}
class Dead1 implements Runnable{
 boolean boo;
 public Dead1(boolean boo){
  this.boo=boo;
 }
 public void run(){
  if(boo){
   synchronized(Lock.o1){
    System.out.println(" if o1_lock");
    synchronized(Lock.o2){
     System.out.println(" if o2_lock");
    } 
   }
  }else{
   synchronized(Lock.o2){
    System.out.println(" else o2_lock");
    synchronized(Lock.o1){
     System.out.println(" else o1_lock");
    } 
   }
  }
 }
}
/**
 * 创建不同的对象锁
 * @author zjw
 *
 */
class Lock{
 static Object o1=new Object();
 static Object o2=new Object();
}

 

 

                                                                         
                                          ----------------------    android培训    java培训   期待与您交流!    ----------------------   
                         详细请查看      http://edu.csdn.net/heima
原创粉丝点击