黑马程序员技术交流社区
标题:
死锁示例
[打印本页]
作者:
追逐
时间:
2014-3-18 16:30
标题:
死锁示例
本帖最后由 追逐 于 2014-3-21 19:35 编辑
/*
写一个死锁
也就是同步嵌套同步
*/
class SiSuo implements Runnable {
//定义一个标签
private boolean b;
SiSuo(boolean b) {
this.b = b;
}
public void run() {
if(b == true) {
while(true) {
synchronized(Suo.obj1) {
System.out.println("if suoOne");
synchronized(Suo.obj2) {
System.out.println("if suoTwo");
}
}
}
} else {
while(true) {
synchronized(Suo.obj2) {
System.out.println("else suoTwo");
synchronized(Suo.obj1) {
System.out.println("else suoOne");
}
}
}
}
}
}
//写一个锁类
class Suo {
static Object obj1 = new Object();
static Object obj2 = new Object();
}
class SiSuoTest {
public static void main(String[] args) {
Thread t1 = new Thread(new SiSuo(true)); //创建两个线程
Thread t2 = new Thread(new SiSuo(false));
t1.start(); //开启线程
t2.start();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2