Java 中死鎖的程序案例

這個就是死鎖的小程序案例 :小程序

 /**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();

}

相關文章
相關標籤/搜索