黑马程序员技术交流社区
标题:
死锁,写得出死锁,才能避免死锁
[打印本页]
作者:
iceknc
时间:
2015-9-19 09:40
标题:
死锁,写得出死锁,才能避免死锁
class DeadLock implements Runnable
{
//定义两个锁
private static Object lockA = new Object();
private static Object lockB = new Object();
private boolean flag;
DeadLock(boolean flag)
{
this.flag = flag;
}
//覆写Runnable接口的run()方法
public void run()
{
while(true)
{
if(flag)
{ //A锁嵌套B锁
synchronized(lockA)
{
System.out.println("if lockA");
synchronized(lockB)
{
System.out.println("if lockB");
}
}
}
else
{ // B锁嵌套A锁
synchronized(lockB)
{
System.out.println("else lockB");
synchronized(lockA)
{
System.out.println("else lockA");
}
}
}
}
}
class DeadLockTest
{
public static void main(String[] args)
{
DeadLock dl1 = new DeadLock(true);
DeadLock dl2 = new DeadLock(false);
Thread t1 = new Thread(dl1);
Thread t2 = new Thread(dl2);
t1.start();
t2.start();
}
}
作者:
侯越强
时间:
2015-9-19 10:40
不错不错,加油。
作者:
liudongcan
时间:
2015-9-19 18:43
死锁我懂,但是理论上不好表达
作者:
木木三
时间:
2015-9-19 19:10
不同锁嵌套,结果互相等待锁的释放,导致程序阻滞
作者:
王盟
时间:
2015-9-19 19:44
总结的挺好,顶一个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2