Java语言模拟死锁问题
来源:互联网 发布:阿里云 功能 编辑:程序博客网 时间:2024/06/07 05:07
死锁问题是多线程特有的问题。下面利用Java语言模拟死锁。
class A {public synchronized void foo(B b) {try {Thread.sleep(200); //确保死锁一定发送} catch (InterruptedException e) {e.printStackTrace();}b.last();}public synchronized void last() {}}class B {public synchronized void bar(A a) {try {Thread.sleep(200); //确保死锁一定发送} catch (InterruptedException e) {e.printStackTrace();}a.last();}public synchronized void last() {}}public class TestDeadLock implements Runnable {A a = new A();B b = new B();@Overridepublic void run() {b.bar(a);}public void init() {a.foo(b);}public static void main(String[] args) {TestDeadLock tdl = new TestDeadLock();new Thread(tdl).start();tdl.init();}}
上述代码中,有两个线程:主线程、TestDeadLock线程。首先TestDeadLock线程调用b.bar(a),此时对B进行加锁,同时主线程调用a.foo(b)方法,该方法对A进行加锁。在sleep(200)后,A企图对B进行加锁,B企图对A进行加锁,这样就产生了死锁。
全文完。转载请注明出处。
0 0
- Java语言模拟死锁问题
- Java模拟排查线程死锁问题
- C#模拟死锁问题
- 线程-模拟死锁问题
- java模拟线程死锁
- java 线程死锁模拟
- Java 模拟多线程死锁
- java模拟死锁事故现场
- 模拟死锁 java
- [转]C#模拟死锁问题
- 使用java线程模拟死锁
- java多线程之模拟死锁
- java多线程 模拟死锁程序
- Java代码模拟死锁 多线程
- Java多线程死锁情况模拟
- java语言基础(93)——多线程中的死锁问题
- java 同步死锁问题
- java 多线程死锁问题
- Python - KMP算法
- [小技巧] vim cscope 使用时打开新的窗口
- jQuery基础教程笔记-样式和动画
- 为什么需要内部类,内部类的作用
- how to enable eclipse generate select statement 如何在eclipse里面写sql DDL语句
- Java语言模拟死锁问题
- js获取滚动条距离浏览器顶部,底部的高度,兼容ie和firefox
- Codeforces 486D Valid Sets(暴力)
- HDU 2030 汉字统计
- 易景地球V3.0功能清单
- 关于DOM操作的性能优化
- 第273题字母小游戏
- Quartz入门例子简介 从入门到菜鸟(一)
- while(cin>>n)结束循环