---------------------
android培训
、
java培训
、期待与您交流! ----------------------
死锁,程序挂着不动
A想进B,B想进A,互相牵制
出现情景:synchronized里嵌套synchronized,且不是用同一个对象来锁的
class Test implements Runnable
{
private boolean f;
Test(boolean f)
{
this.f=f;
}
public void run()
{
if (f)
{
synchronized(MyLock.a)
{
System.out.println("if a");
synchronized(MyLock.b)
{
System.out.println("if b");
}
}
}
else
{
synchronized(MyLock.b)
{
System.out.println("else b");
synchronized(MyLock.a)
{
System.out.println("else a");
}
}
}
}
}
class MyLock
{
static Object a=new Object();
static Object b=new Object();
}
class Dead2
{
public static void main(String[] args)
{
new Thread(new Test(true)).start();
new Thread(new Test(false)).start();
}
}
--------------------
ASP.Net+Android+IOS开发、
.Net培训、期待与您交流! ----------------------