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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 今天是坏蛋 中级黑马   /  2013-10-28 11:56  /  725 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 今天是坏蛋 于 2013-10-30 10:20 编辑

看了毕老师的死锁例子,自己学着写了一个,高手看看对不对。
还有这个我不是很懂

class DeadLock
{
        static Object lock_A=new Object();
        static Object lock_B=new Object();
}
不是说源文件名是*.class的吗,锁怎么是   DeadLock.lock_B   ?



class TestLock implements Runnable
{
        private int a=1;
        public int test(int a)
        {
                this.a=a;
                return a;
        }
        public void run()
        {
                        if (a==0)
                                {
                                        synchronized(DeadLock.lock_A)
                                                {
                                                        System.out.println(Thread.currentThread().getName()+"        lock one A...");
                                                        synchronized(DeadLock.lock_B)
                                                        {
                                                                        System.out.println(Thread.currentThread().getName()+"        lock one B...");
                                                        }
                                                }
                                }        
                        else
                                {
                                        synchronized(DeadLock.lock_B)
                                        {
                                                System.out.println(Thread.currentThread().getName()+"        lock tow B...");
                                                synchronized(DeadLock.lock_A)
                                                {                                                
                                                                System.out.println(Thread.currentThread().getName()+"        lock two A...");
                                                }
                                        }
                                }               
        }
}
class DeadLock
{
        static Object lock_A=new Object();
        static Object lock_B=new Object();
}
class A
{
        public static void main(String []args)
        {
               
                TestLock a0 = new TestLock();
                a0.test(0);
                TestLock a1 = new TestLock();
                Thread t0 = new Thread(a0);
                Thread t1 = new Thread(a1);
               
                t0.start();
                t1.start();
        }
}

1 个回复

倒序浏览
若是提问帖,请提出相应的问题,
若是资源分享,请重新编辑帖子,修改主题分类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马