您的位置:首页 > 编程语言 > Java开发

Java 中死锁的程序案例

2013-04-25 20:31 267 查看
这个就是死锁的小程序案例 :

/**

* 这个是练习死锁的小程序

*

* @author YouGe

*

*/

public class SisuoTest {

public static void main(String arg[]) {

Thread t1 = new Thread(new Sisuoclass(true));//建立一个线程

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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 死锁