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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lu774374302 初级黑马   /  2015-8-21 10:14  /  464 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

class DeadLock implements Runnable {
        private Object resourceA = new Object();
        private Object resourceB = new Object();
        private int count = 0;
        public void run() {
                if(count++ < 1) {
                        synchronized(resourceA) {
                                System.out.println(Thread.currentThread().getName() + "线程拿到了资源 resourceA 的对象锁");
                                try {
                                        Thread.sleep(1000);
                                } catch(Exception e) {
                                        e.printStackTrace();
                                }
                                synchronized(resourceB) {
                                        System.out.println(Thread.currentThread().getName() + "线程拿到了资源 resourceB 的对象锁");
                                }                                
                        }
                } else {
                        synchronized(resourceB) {
                                System.out.println(Thread.currentThread().getName() + "线程拿到了资源 resourceB 的对象锁");
                                try {
                                        Thread.sleep(1000);
                                } catch(Exception e) {
                                        e.printStackTrace();
                                }
                                synchronized(resourceA) {
                                        System.out.println(Thread.currentThread().getName() + "线程拿到了资源 resourceA 的对象锁");
                                }                                
                        }                        
                }
        }
}
public class DeadLockTest {
        public static void main(String[] args) {
                DeadLock deadLock = new DeadLock();
                Thread t1 = new Thread(deadLock);
                Thread t2 = new Thread(deadLock);
                t1.start();
                t2.start();
        }
}

0 个回复

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