黑马程序员技术交流社区
标题:
关于死锁的问题
[打印本页]
作者:
我为你着迷
时间:
2014-7-12 21:12
标题:
关于死锁的问题
class Test implements Runnable
{
private boolean flag;
Test(boolean flag)
{
this.flag=flag;
}
public void run()
{
if(flag)
{
synchronized(MyLock.locka)
{
System.ou("if locka");t.println
synchronized(MyLock.lockb)
{
System.out.println("if lockb");
}
}
}
else
{
synchronized(MyLock.lockb)
{
System.out.println("else lockb");
synchronized(MyLock.locka)
{
System.out.println("else locka");
}
}
}
}
}
class MyLock
{
static Object locka=new Object();
static Object lockb=new Object();
}
class DeadLockTest
{
public static void main(String[] args)
{
Thread t1=new Thread(new Test(true));
Thread t2=new Thread(new Test(false));
t1.start();
t2.start();
}
}
复制代码
大家好 关于这段代码我有2点疑惑。
第一个问题就是static可以修饰成员变量和成员函数。这句话Object locka=new Object();为什么可以被static修饰呀?
第二个问题就是加上了静态以后就多了一种调用方式,就是可以直接被类名所调用,调用的是方法,而locka和lockb都
是对象的引用,为什么还可以被类名调用呢?难道我学死了!麻烦仁兄们帮小弟解答下疑惑。谢谢了。
作者:
汉谟拉比
时间:
2014-7-12 21:20
这个我也不太懂,,帮你顶一下
作者:
我为你着迷
时间:
2014-7-12 21:23
汉谟拉比 发表于 2014-7-12 21:20
这个我也不太懂,,帮你顶一下
汗!{:3_55:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2