A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙地豪 中级黑马   /  2012-3-27 16:30  /  1214 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package sxt;

//死锁
//一个锁 里面套另一个锁 解锁, 另一个锁 需要 这个锁 解锁
public class TestDeadLock implements Runnable {
        public int flag = 1;
        static Object o1 = new Object(), o2 = new Object();
        public void run() {
                System.out.println("flag=" + flag);
                if(flag == 1) {
                        synchronized(o1) {
                                try {
                                        Thread.sleep(500);
                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
                                synchronized(o2) {
                                        System.out.println("1");       
                                }
                        }
                }
                if(flag == 0) {
                        synchronized(o2) {
                                try {
                                        Thread.sleep(500);
                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
                                synchronized(o1) {
                                        System.out.println("0");
                                }
                        }
                }
        }       
       
        public static void main(String[] args) {
                TestDeadLock td1 = new TestDeadLock();
                TestDeadLock td2 = new TestDeadLock();
                td1.flag = 1;
                td2.flag = 0;
                Thread t1 = new Thread(td1);
                Thread t2 = new Thread(td2);
                t1.start();
                t2.start();
               
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马