黑马程序员技术交流社区

标题: 死锁程序,还可以再优化吗? [打印本页]

作者: 鹰击长空168    时间: 2015-1-11 18:02
标题: 死锁程序,还可以再优化吗?
//创建一个死锁程序,采用同步中嵌套同步的方式
class LockBase implements Runnable
{
     static   Object obj1=new Object();
     static   Object obj2=new Object();
/*若obj1,obj2均用private修饰,则t1和t2中的obj1,obj2不同,不构成死锁
静态成员随着类的加载而存在于内存的方法区中,为共享数据;
私有成员随着对象的建立而存在,属于不同对象。
*/
     private boolean flag;   
     LockBase(boolean flag)
     {
        this.flag=flag;
     }
     public void run()
     {
            if(flag)
                {
                        for (;;)
                        {
                             synchronized(obj1)
                             {
                                   System.out.println(Thread.currentThread().getName()+"...Aobj1..run");
                                   synchronized(obj2)
                                   {
                                             System.out.println(Thread.currentThread().getName()+"...Aobj2..run");
                                   }
                            }
                    }
      }
       else
                for (;;)
                {
                        synchronized(obj2)
                        {
                                System.out.println(Thread.currentThread().getName()+"...Bobj2..run");
                                synchronized(obj1)
                                 {
                                       System.out.println(Thread.currentThread().getName()+"...Bobj1..run");
                                 }
                        }
                 }
      }
}
class LockDeadDemo
{
         public static void main(String [] args)
          {
                 Thread t1=new Thread(new LockBase(true));
                 Thread t2=new Thread(new LockBase(false));
                  t1.start();
                  t2.start();
          }
}

作者: 不给吃鸭梨    时间: 2015-1-11 18:19
本来就是要避免的问题,为什么还要优化呢?而且死锁的产生不仅仅是线程间的问题,如果一个进程资源分配不足也会有死锁的。

作者: 鹰击长空168    时间: 2015-1-11 21:11
不给吃鸭梨 发表于 2015-1-11 18:19
本来就是要避免的问题,为什么还要优化呢?而且死锁的产生不仅仅是线程间的问题,如果一个进程资源分配不足 ...

嗯嗯!!!




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