想在多线程中产生死锁,视频中毕老师新建了一个类,然后在类中新建了两个对象,再在synchronized()中传入对象。
我没有新建类,而是直接在类中新建了两个对象,为什么就不能实现死锁?
class Test implements Runnable
{
Object locka =new Object(); //我是直接在这里寻了两个对象,而不像视频中那样,建立一个类,然后再在类里创建两个静态对象
Object lockb =new Object();
private boolean flag;
Test(boolean flag)
{
this.flag =flag;
}
public void run()
{
if(flag)
{
synchronized(locka)
{
System.out.println("if locka");
synchronized(lockb)
{
System.out.println("if lockb");
}
}
}
else
{
synchronized(lockb)
{
System.out.println("else lockb");
synchronized(locka)
{
System.out.println("else locka");
}
}
}
}
}
class Noname
{
public static void main(String[] args)
{
Thread t1 =new Thread(new Test(true));
Thread t2 =new Thread(new Test(false));
t1.start();
t2.start();
}
}
|