黑马程序员技术交流社区
标题:
对于synchronized关键字还有些模糊,毕老师构成死锁练习中的不解
[打印本页]
作者:
郭嘉
时间:
2013-1-14 20:41
标题:
对于synchronized关键字还有些模糊,毕老师构成死锁练习中的不解
class TestLock implements Runnable
{
private boolean flag;
TestLock(boolean flag)
{
this.flag=flag;
}
public void run()
{
if (flag)
{ while(true)
{
synchronized (Lock.n1)
{System.out.println("IF Locka");
synchronized(Lock.n2)
{
System.out.println("IF Lockb");
}
}
}}
else
while(true)
{{
synchronized (Lock.n2){
System.out.println("else Locka");
synchronized (Lock.n1){
System.out.println("else Lockb");
}
}
}
}}
}
class Lock{
Lock(){}
static Lock n1=new Lock();
static Lock n2=new Lock();
}
class DeadLock{
public static void main(String args[])
{
System.out.println("Hello");
Thread t1=new Thread(new TestLock(true));
Thread t2=new Thread(new TestLock(false));
t1.start();
t2.start();
}
}
复制代码
这个是毕老师视频中的一个例子,我知道synchronized()是以两个不同的lock对象传入,但是毕老师在卖票例子中举得this跟obj是不同锁,为什么在这个里面传入obj跟this就不会产生死锁现象呢?
作者:
探春风-[宝]
时间:
2013-1-14 23:24
{:soso_e100:}貌似是沙发,我发现其中的class 之后的名字中的第二个字母的首字母没有大写,呵呵。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2