您的位置:首页 > 编程语言 > Java开发

java 线程五-死锁经典举例

2016-05-09 22:58 429 查看
/*
死锁经典举例。
*/

class Test implements Runnable
{
private boolean flag;
Test(boolean flag)
{
this.flag=flag;
}

public void run()
{
if(flag)
{
while(true)
{
synchronized(Loc.obja)
{
System.out.println("if--obj_a--true");
synchronized(Loc.objb)
{
System.out.println("if--obj_b--true");
}
}
}
}
else
{
while(true)
{
synchronized(Loc.objb)
{
System.out.println("if--obj_b--false");
synchronized(Loc.obja)
{
System.out.println("if--obj_a--false");
}
}
}
}
}
}

class Loc
{
static Object obja=new Object();
static Object objb=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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 线程