这个就是死锁的小程序案例 :小程序
/**ide
* 这个是练习死锁的小程序this
* spa
* @author YouGe线程
* 对象
*/it
public class SisuoTest {class
public static void main(String arg[]) {程序
Thread t1 = new Thread(new Sisuoclass(true));//创建一个线程im
Thread t2 = new Thread(new Sisuoclass(false));//创建另外一个线程
t1.start();//启动一个线程
t2.start();//启动另外一个线程
}
}
/**
* 线程的类
* @author YouGe
*
*/
class Sisuoclass implements Runnable {
public boolean falg;//控制线程
Sisuoclass(boolean falg) {
this.falg = falg;
}
public void run() {
/**
* 若是falg的值为true则调用t1线程
*/
if (falg) {
while (true) {
synchronized (Suo.OB1) {
System.out.println("if 我是OB1");
synchronized (Suo.OB2) {
System.out.println("if 我是OB2");
}
}
}
}
/**
* 若是falg的值为false则调用t2线程
*/
else {
while (true) {
synchronized (Suo.OB2) {
System.out.println("else 我是OB2");
synchronized (Suo.OB1) {
System.out.println("else 我是OB1");
}
}
}
}
}
}
/**
* 用于锁的对象
* @author YouGe
*
*/
class Suo {
static Object OB1 = new Object();
static Object OB2 = new Object();
}