多线程死锁

来源:互联网 发布:次世代软件 编辑:程序博客网 时间:2024/05/24 23:13


------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

这是一个死锁小实例



public static void main(String[] args) 
{
Thread th1 = new Thread(new SiLock(true));
Thread th2 = new Thread(new SiLock(false));
th1.start();
th2.start();
}
}

//自的定义锁2
class MyLock1
{
static Object obA = new Object() ;
static Object obB = new Object();
}
class SiLock implements Runnable
{
private boolean flse ;
public SiLock(boolean flse)
{
this.flse = flse ;
}
public void run() {
if(flse)
{
synchronized (MyLock1.obA) //MyLock1.obA是类名.对象
{
System.out.println(Thread.currentThread().getName()+"...."+"if-----obA");
synchronized (MyLock1.obB) 
{
System.out.println(Thread.currentThread().getName()+"...."+"if-----obB");
}
}
}
else 
{
synchronized (MyLock1.obB) 
{
System.out.println(Thread.currentThread().getName()+"...."+"else-----obB");
synchronized (MyLock1.obA) 
{
System.out.println(Thread.currentThread().getName()+"...."+"else-----obA");
}
}
}

}

}

0 0
原创粉丝点击