博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用线程模拟死锁情形
阅读量:4614 次
发布时间:2019-06-09

本文共 837 字,大约阅读时间需要 2 分钟。

(转自南瓜皮的网屋)

死锁问题是并发处理的一种典型错误情况,下面的代码演示了这个情形:

public class TestDeadLock implements Runnable {

public int flag = 1;

static Object o1 = new Object(), o2 = new Object();

public void run() {

System.out.println("flag=" + flag);

if(flag == 1) {

synchronized(o1) {

try {

Thread.sleep(500);

} catch (Exception e) {

e.printStackTrace();

}

synchronized(o2) {

System.out.println("1");

}

}

}

if(flag == 0) {

synchronized(o2) {

try {

Thread.sleep(500);

} catch (Exception e) {

e.printStackTrace();

}

synchronized(o1) {

System.out.println("0");

}

}

}

}

 

public static void main(String[] args) {

TestDeadLock td1 = new TestDeadLock();

TestDeadLock td2 = new TestDeadLock();

td1.flag = 1;

td2.flag = 0;

Thread t1 = new Thread(td1);

Thread t2 = new Thread(td2);

t1.start();

t2.start();

 

}

}

转载于:https://www.cnblogs.com/pxsbest/archive/2012/08/10/2631698.html

你可能感兴趣的文章
vue+element-ui实现表格checkbox单选
查看>>
box-shadow
查看>>
select * 和select 1 以及 select count(*) 和select count(1)的区别
查看>>
进度条04
查看>>
Silverlight RadGridView的HeaderCellStyle样式
查看>>
IE兼容CSS3圆角border-radius的方法
查看>>
Elsevier期刊投稿状态
查看>>
Heartbeat+LVS构建高可用负载均衡集群
查看>>
多表查询
查看>>
springMVC_数据的处理过程
查看>>
ORM + Mysql配置
查看>>
18 python 初学(time、random 模块)
查看>>
那些年我们扔过的漂流瓶
查看>>
javascript:巧用eval函数组装表单输入项为json对象
查看>>
2.grep、awk、sed、cut处理文本
查看>>
为什么我们叫雪狼队
查看>>
wpf button变成圆角
查看>>
测试开发学习进阶教程 视频&PDF
查看>>
C#基础-连接Access与SQL Server
查看>>
autofac
查看>>