黑马程序员技术交流社区

标题: 关于一个同步死锁问题,大家进来看看 [打印本页]

作者: 十里坡    时间: 2015-6-15 21:23
标题: 关于一个同步死锁问题,大家进来看看
  1. class Mylock{
  2.          Object locka = new Object();
  3.          Object lockb = new Object();
  4.          //在毕老师的视频中这里是静态修饰锁对象,static Object locka = new Object();
  5.          // Static Object lockb = new Object();
  6.          //这个程序锁不住,大家说一下自己的看法,我我也不知道这样怎么就不能锁住。
  7. }
  8. class DeadLock implements Runnable{
  9.         private boolean flag;
  10.         Mylock m = new Mylock();
  11.         DeadLock(boolean flag){
  12.                 this.flag = flag;
  13.         }
  14.         public void run(){
  15.                 if(flag){
  16.                         while(true){
  17.                         synchronized(m.locka){
  18.                                 System.out.println("if locka");
  19.                                 try{Thread.sleep(20);}catch(Exception e){}
  20.                                 synchronized(m.lockb){
  21.                                         System.out.println("if lockb");
  22.                                 }
  23.                         }
  24.                 }
  25.                 }else{
  26.                         while(true){
  27.                         synchronized(m.lockb){
  28.                                 System.out.println("else lockb");
  29.                                 synchronized(Mm.locka){
  30.                                         System.out.println("else locka");
  31.                                 }
  32.                         }
  33.                 }
  34.                 }
  35.         }
  36. }
  37. class LockDemo{
  38.         public static void main(String[] args){
  39.                 Thread t1 = new Thread(new DeadLock(true));
  40.                 Thread t2 = new Thread(new DeadLock(false));
  41.                 t1.start();
  42.                 t2.start();
  43.         }
  44. }
复制代码



作者: 十里坡    时间: 2015-6-15 21:27
这是为啥 a???有没有大神来说一下的?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2