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();
}
/**
* 这个是练习死锁的小程序
*
* @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 线程 死锁(哲学家用餐案例讲解) -------thinking java 4
- Java可执行程序打包成jar的简单案例
- 3-4-Java多线程-案例-死锁
- Java 程序死锁问题原理及解决方案(来源IBM开发者论坛本文作者文章)
- 2018-07-22期 Java死锁小案例编程
- 实战案例-- 用Java编写基础小程序
- java 解决死锁(程序模拟)
- Spark Java程序案例入门
- java死锁案例
- Java 程序死锁问题原理及解决方案
- Java程序中解决数据库超时与死锁
- java-写一个死锁的案例
- Java 程序死锁问题原理及解决方案
- 在Java程序中处理数据库超时与死锁
- java死锁案例
- Java案例:自动点名程序
- Java写一个简单的死锁程序
- java 死锁程序
- java写一个会导致死锁的程序
- Android(java)学习笔记85:案例拨号程序