java死锁样例
来源:互联网 发布:java变量 编辑:程序博客网 时间:2024/05/16 07:04
java死锁样例
package bin.io.thread;/**测试死锁 * @author 牵手无奈 * date:2015-9-1 * */public class DeadLock implements Runnable{private int flag = 0;private static Object o1 = new Object();private static Object o2 = new Object();public int getFlag() {return flag;}public void setFlag(int flag) {this.flag = flag;}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubDeadLock d1 = new DeadLock();DeadLock d2 = new DeadLock();d1.setFlag(0);d2.setFlag(1);new Thread(d1).start();new Thread(d2).start();}@Overridepublic void run() {if(flag==0){synchronized (o1) {System.out.println("我锁定O1,然后睡上1秒!");try {Thread.sleep(1000);System.out.println("我o1睡醒了,要准备拿o2");synchronized (o2) {System.out.println("我拿到o2,,表示没有发生死锁");}} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}else if(flag==1){synchronized (o2) {System.out.println("我锁定O2,然后睡上1秒!");try {Thread.sleep(1000);System.out.println("我o2睡醒了,要准备拿o1");synchronized (o1) {System.out.println("我拿到o1,表示没有发生死锁");}} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}
运行结果
我锁定O2,然后睡上1秒!
我锁定O1,然后睡上1秒!
我睡醒了,要准备拿o1
我睡醒了,要准备拿o2
0 0
- java死锁样例
- java死锁,避免死锁
- Java.死锁
- Java死锁
- java死锁
- java ----死锁
- Java死锁
- java 死锁
- Java - 死锁
- java 死锁
- JAVA 死锁
- java死锁
- java死锁
- Java死锁
- Java - 死锁
- Java 死锁
- java 死锁
- java死锁
- 69.iOS Team Provisioning Profile 解释
- ZOJ3891 K-hash 后缀自动机SAM
- Eclipse 插件开发遇到问题心得总结
- 70.net发送apns解决方案(iphone push)
- 谁让App工程师产生了泡沫?
- java死锁样例
- 71.自动检测iOS网络并可跳转至设置界面设置网络
- windows下多个tomcat配置
- Eclipse 插件开发 向导
- 使用blend改变图片颜色
- cocos2dlua-创建一个游戏
- kali linux运行慢的原因
- android设计值得收藏的网站
- SSDB主从配置