黑马程序员技术交流社区

标题: 对于synchronized关键字还有些模糊,毕老师构成死锁练习中的不解 [打印本页]

作者: 郭嘉    时间: 2013-1-14 20:41
标题: 对于synchronized关键字还有些模糊,毕老师构成死锁练习中的不解
  1. class TestLock implements Runnable
  2. {
  3.         private boolean flag;
  4.         TestLock(boolean flag)
  5.         {
  6.                 this.flag=flag;
  7.         }
  8.         public void run()
  9.         {
  10.                 if (flag)
  11.                 {  while(true)
  12.                 {
  13.                    synchronized (Lock.n1)
  14.                         {System.out.println("IF Locka");
  15.                                  synchronized(Lock.n2)
  16.                                 {
  17.                                         System.out.println("IF Lockb");
  18.                                 }
  19.                         }
  20.                 }}
  21.                 else
  22.                         while(true)
  23.                 {{
  24.                         synchronized (Lock.n2){
  25.                                 System.out.println("else Locka");
  26.                                 synchronized (Lock.n1){
  27.                                         System.out.println("else Lockb");
  28.                                 }
  29.                         }
  30.                 }
  31.         }}
  32. }
  33. class Lock{
  34.         Lock(){}
  35.          static  Lock n1=new Lock();
  36.          static  Lock n2=new Lock();
  37. }
  38. class DeadLock{
  39.         public static void main(String args[])
  40.         {
  41.                 System.out.println("Hello");
  42.                 Thread t1=new Thread(new TestLock(true));
  43.                 Thread t2=new Thread(new TestLock(false));
  44.                 t1.start();
  45.                 t2.start();
  46.         }
  47. }
复制代码
这个是毕老师视频中的一个例子,我知道synchronized()是以两个不同的lock对象传入,但是毕老师在卖票例子中举得this跟obj是不同锁,为什么在这个里面传入obj跟this就不会产生死锁现象呢?
作者: 探春风-[宝]    时间: 2013-1-14 23:24
{:soso_e100:}貌似是沙发,我发现其中的class 之后的名字中的第二个字母的首字母没有大写,呵呵。。。




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