這個就是死鎖的小程序案例 :小程序
/**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();
}