/**
* Created by Leon on 2017/5/22.
* 一个死锁示例
*/
public class TestDeadLock implements Runnable
{
public int flag=1;
public static Object o1=new Object();
public static Object o2=new Object();
public void run()
{
System.out.println("flag="+flag);
if (flag==1)
{
synchronized(o1)
{
try
{
Thread.sleep(500);
}
catch(Exception e)
{
e.printStackTrace();
}
synchronized (o2)
{
System.out.println("1");
}
}
}
if (flag==0)
{
synchronized (o2)
{
try
{
Thread.sleep(500);
}
catch (Exception e)
{
e.printStackTrace();
}
synchronized (o1)
{
System.out.println("0");
}
}
}
}
public static void main(String[] args)
{
TestDeadLock td1=new TestDeadLock();
TestDeadLock td2=new TestDeadLock();
td1.flag=1;
td2.flag=0;
Thread t1=new Thread(td1);
Thread t2=new Thread(td2);
t1.start();
t2.start();
}
}
进程同步-死锁示例
最新推荐文章于 2021-03-29 21:09:03 发布