模拟死锁 java
来源:互联网 发布:手机专业绘画软件 编辑:程序博客网 时间:2024/06/04 00:35
直接上代码吧:
package com.sanhu.utils;public class DeckLockTest implements Runnable{ private int flag; /** * 这里必须使用static关键字进行修饰,来保证这两个对象对DeckLockTest的所有实例是共享的 * 如果不使用static修饰,不会产生死锁现象 */ private static Object o1 = new Object(), o2 = new Object(); public DeckLockTest(int flag) { this.flag = flag; } @Override public void run() { System.err.println("start: " + flag); if(flag == 1) { synchronized (o1) { try { Thread.sleep(500); } catch (InterruptedException ie) { ie.printStackTrace(); } synchronized (o2) { System.err.println(flag); } } } if(flag == 0) { synchronized (o2) { try { Thread.sleep(500); } catch (InterruptedException ie) { ie.printStackTrace(); } synchronized (o1) { System.err.println(flag); } } } } public static void main(String[] args) { DeckLockTest t1 = new DeckLockTest(1); DeckLockTest t2 = new DeckLockTest(0); new Thread(t1).start(); new Thread(t2).start(); }}
实现的关键是两个线程竞争两个锁。
阅读全文
0 0
- java模拟线程死锁
- java 线程死锁模拟
- Java 模拟多线程死锁
- java模拟死锁事故现场
- 模拟死锁 java
- 使用java线程模拟死锁
- java多线程之模拟死锁
- java多线程 模拟死锁程序
- Java语言模拟死锁问题
- Java代码模拟死锁 多线程
- Java多线程死锁情况模拟
- java 解决死锁(程序模拟)
- Java模拟排查线程死锁问题
- 模拟死锁
- java多线程学习之死锁的模拟和避免
- java死锁,避免死锁
- C#模拟死锁问题
- 临界区死锁模拟.
- IdCardUtils 工具类 (身份证)
- Tecplot使用
- 在ubuntu16.04 server系统下配置Elasticsearch+Kibana+X-pack开发环境
- linux 系统用到的快捷键
- supermap deskpro该弧段与子点数据集中对应结点的空间位置不匹配
- 模拟死锁 java
- 第二次试验
- 前端之css预编译
- linux下mongodb启动问题
- 多线程实现的三种方式
- 年终总结怎么写?思维导图来帮忙
- Spring MVC 教程,快速入门,深入分析
- 视频主观质量对比工具(Visual comparision tool based on ffplay)
- 字符串切分添加逗号