易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Java一个简单的死锁程序
package
namespace;
class
Dead
implements
Runnable
{
public
boolean
flag;
public
Object locka=
new
Object();
public
Object lockb=
new
Object();
public
Dead(
boolean
f) {
this
.flag=f;}
public
void
run()
{
while
(
true
) {
if
(flag)
{
synchronized
(Lock.locka)
{
System.out.println(
"if loca"
);
synchronized
(Lock.lockb)
{
System.out.println(
"if lockb"
);
}
}
}
else
{
synchronized
(Lock.lockb)
{
System.out.println(
"else lockb"
);
synchronized
(Lock.locka) {
System.out.println(
"else locka"
);
}
}
}
}
}
}
class
Lock
{
static
Object locka=
new
Object();
static
Object lockb=
new
Object();
}
public
class
DeadLock {
public
static
void
main(String args[])
{
Thread t1=
new
Thread(
new
Dead(
true
));
Thread t2=
new
Thread(
new
Dead(
false
));
t1.start();
t2.start();
}
}
/*
* 写一个死锁程序
* 容易引起 是因为两个锁引用的不是同一个锁,这样就会引起死锁现在
*
* 还有在多现在中出现安全性问题的时候,一般要考虑的问题:
* 1. 是不是两个线程,并且两个线程有没有同步,也就是有没有 synchronized 块或函数
* 2. 如果有多个同步代码块或同步函数的话,那看看所有 的同步它们用的是不是??一个锁,如果不是,会引起死锁和安全性问题
*
* */
2011
/
10
/
23
15
:
13
:
46
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图