首页 > 编程语言 > 详细

java多线程问题中死锁的一个实现

时间:2015-05-19 22:39:34      阅读:282      评论:0      收藏:0      [点我收藏+]

1.直接上代码:

class LockDemo{
	public static final Object A_LOCK=new Object();
	public static final Object B_LOCK=new Object();
}
public class ThreadLockDemo implements Runnable{
	public boolean flag;
	public ThreadLockDemo(boolean flag)
	{
		this.flag=flag;
	}
	public void run()
	{
		if(flag)
		{
			synchronized (LockDemo.A_LOCK) {
				System.out.println("if  A_LOCK");
				synchronized (LockDemo.B_LOCK) {
					System.out.println("B_LOCK");
				}
				
			}
		}
		else
		{
			synchronized (LockDemo.B_LOCK) {
				System.out.println("else B_LOCK");
				synchronized (LockDemo.A_LOCK) {
					System.out.println("A_LOCK");
				}
			}
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ThreadLockDemo td1=new ThreadLockDemo(false);
		ThreadLockDemo td2=new ThreadLockDemo(true);
		Thread t1=new Thread(td1);
		Thread t2=new Thread(td2);
		t1.start();
		t2.start();
	}

}

2.有图有真相

技术分享

java多线程问题中死锁的一个实现

原文:http://blog.csdn.net/mnmlist/article/details/45850183

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!