使用多线程方法生成一个死锁程序
来源:互联网 发布:php自动跳转url 编辑:程序博客网 时间:2024/05/16 04:51
/**
* 要求:生成一个死锁程序
*
*/
public class DieThreadDemo {
public static void main(String[] args) {
//创建这两个线程
Example example=new Example();
DieThread1 thread1=new DieThread1(example);
thread1.start();
DieThread2 thread2=new DieThread2(example);
thread2.start();
}
}
class DieThread1 extends Thread{
private Example example=null;
public DieThread1(Example example) {
super();
this.example = example;
}
@Override
public void run() {
example.method1();
}
}
class DieThread2 extends Thread{
private Example example=null;
public DieThread2(Example example) {
super();
this.example = example;
}
@Override
public void run() {
example.method2();
}
}
//应该尽量避免同步块中嵌套同步块
class Example{
private Object obj1=new Object();
private Object obj2=new Object();
public void method1() {
synchronized (obj1) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (obj2) {
System.out.println("methord1");
}
}
}
public void method2() {
synchronized (obj2) {
//想先获取object2
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (obj1) {
//再获取object1
System.out.println("methord2");
}
}
}
}
0 0
- 使用多线程方法生成一个死锁程序
- 使用多线程方法实现一个死锁程序,用来提醒自己不要犯这样的错误
- 多线程的死锁程序
- 多线程---死锁程序
- 一个使用gdb定位死锁的方法!!
- 多线程规避死锁方法
- 多线程共同使用一个锁引发的死锁问题
- 一个死锁程序
- 写一个死锁程序
- 一个死锁程序
- 写出一个死锁程序!!
- java多线程 模拟死锁程序
- Windebug 调试多线程程序死锁
- 一个模拟死锁的多线程
- 多线程WIN32程序如何检查死锁(三)-使用Petri网络来表示多线程应用程序
- 使用gdb调试多线程死锁
- 一个简单的死锁程序
- 一个多线程死锁案例,如何避免及解决死锁问题?
- C++学习笔记54——函数模板
- 【BZOJ1095】【ZJOI2007】捉迷藏 括号序列+线段树维护
- JMS探讨二 ActiveMq
- Linux使用RPM方式安装MySQL
- C语言宏定义和宏定义函数
- 使用多线程方法生成一个死锁程序
- 【OpenCV】矩阵的创建与释放
- sed应用举例
- 蓝桥杯历届-移动距离
- BroadcastReceiver应用详解
- 学习设计模式 (四)(总结)
- www.7zww.com 想做老师 去点评
- Java语言使用for循环打印三角形
- 泛型理解