黑马程序员技术交流社区

标题: 多线程同步死锁问题 [打印本页]

作者: paozhuanyinyu    时间: 2014-8-13 21:00
标题: 多线程同步死锁问题
我同步方法里面同步代码块,两个锁不一样,为什么没有死锁Object obj = new Object();

public synchronized void show()  // 同步方法的锁是this
        {
                synchronized(obj)       //同步代码块锁是object
        {
                        if(num>0)
                        {
                                try{Thread.sleep(10);}catch (InterruptedException e){}
                                System.out.println(Thread.currentThread().getName()+".....sale...."+num--);
                        }
                }
        }



作者: 高顺德    时间: 2014-8-13 21:25
你是用多线程调用吗?死锁是出现在程序多线程调用的时候,cup在切换不同的线程进度时,才会出现的。
个人总结 死锁出现的条件:
1.多线程调用代码段、
2.在前一个条件下电脑CPU内核越少越容易出现死锁,
3.在以上两个条件下死锁是概率发生事件,而不是必须发生时间,简单来说就是在前两个条件下,看运气




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