黑马程序员技术交流社区

标题: 死锁,写得出死锁,才能避免死锁 [打印本页]

作者: iceknc    时间: 2015-9-19 09:40
标题: 死锁,写得出死锁,才能避免死锁
class DeadLock implements Runnable
{
        //定义两个锁
        private static Object lockA = new Object();
        private static Object lockB = new Object();

        private boolean flag;
        DeadLock(boolean flag)
        {
                this.flag = flag;
        }
        //覆写Runnable接口的run()方法
        public void run()
        {
                while(true)
                {
                        if(flag)
                        {       //A锁嵌套B锁
                                synchronized(lockA)
                                {
                                        System.out.println("if lockA");
                                        synchronized(lockB)
                                        {
                                                System.out.println("if lockB");
                                        }
                                }
                        }
                        else
                        {  //        B锁嵌套A锁
                                synchronized(lockB)
                                {
                                        System.out.println("else lockB");
                                        synchronized(lockA)
                                        {
                                                System.out.println("else lockA");
                                        }
                                }
                        }
        }
}

class DeadLockTest
{
        public static void main(String[] args)
        {
                DeadLock dl1 = new DeadLock(true);
                DeadLock dl2 = new DeadLock(false);
                Thread t1 = new Thread(dl1);
                Thread t2 = new Thread(dl2);
                t1.start();
                t2.start();
        }
}
作者: 侯越强    时间: 2015-9-19 10:40
不错不错,加油。
作者: liudongcan    时间: 2015-9-19 18:43
死锁我懂,但是理论上不好表达
作者: 木木三    时间: 2015-9-19 19:10
不同锁嵌套,结果互相等待锁的释放,导致程序阻滞
作者: 王盟    时间: 2015-9-19 19:44
总结的挺好,顶一个




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