黑马程序员技术交流社区
标题:
死锁
[打印本页]
作者:
史世锋
时间:
2015-9-16 22:30
标题:
死锁
package com.itheima;
class MyLock
{
//定义两个Lock对象,代表两把锁
static MyLock locka = new MyLock ();
static MyLock lockb = new MyLock ();
}
class DeadLock implements Runnable
{
//定义一个标识符
boolean flag;
DeadLock(boolean flag)
{
this.flag = flag;
}
@Override
public void run()
{
if(flag)
{
synchronized(MyLock.locka)
{
System.out.println("if locka");
//lockb被另一个线程持有
synchronized(MyLock.lockb)
{
System.out.println("if lockb");
}
}
}
else
{
synchronized(MyLock.lockb)
{
System.out.println("else lockb");
//locka被另一个线程持有
synchronized(MyLock.locka)
{
System.out.println("else locka");
}
}
}
}
}
public class Test026
{
/**
* 死锁的出现时因为同步代码块中嵌套同步代码块
* @param args
*/
public static void main(String[] args)
{
DeadLock dl1 = new DeadLock(true);
DeadLock dl2 = new DeadLock(false);
new Thread(dl1).start();
new Thread(dl2).start();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2