java死锁
来源:互联网 发布:兰黛丽莎香水知乎 编辑:程序博客网 时间:2024/06/05 13:33
//死锁情况
/**
两个锁的相互嵌套。
两个线程分别进行。
*/
class Test implements Runnable
{
private boolean flag;
Test(boolean flag)
{
this.flag = flag;
}
public void run()
{
if (flag)
{
synchronized(MyLock.locka)
{
System.out.println(Thread.currentThread().getName()+"...if locka");
synchronized (MyLock.lockb)
{
System.out.println(Thread.currentThread().getName()+"...if lockb");
}
}
}
else
{
synchronized(MyLock.lockb)
{
System.out.println(Thread.currentThread().getName()+"...else locka");
synchronized (MyLock.locka)
{
System.out.println(Thread.currentThread().getName()+"...else lockb");
}
}
}
}
}
class MyLock
{
public static final Object locka = new Object();
public static final Object lockb = new Object();
}
class DeadLockDemo
{
public static void main(String[] args)
{
Test a1 = new Test(true);
Test a2 = new Test(false);
Thread t1 = new Thread(a1);
Thread t2 = new Thread(a2);
t1.start();
t2.start();
}
}
/**
两个锁的相互嵌套。
两个线程分别进行。
*/
class Test implements Runnable
{
private boolean flag;
Test(boolean flag)
{
this.flag = flag;
}
public void run()
{
if (flag)
{
synchronized(MyLock.locka)
{
System.out.println(Thread.currentThread().getName()+"...if locka");
synchronized (MyLock.lockb)
{
System.out.println(Thread.currentThread().getName()+"...if lockb");
}
}
}
else
{
synchronized(MyLock.lockb)
{
System.out.println(Thread.currentThread().getName()+"...else locka");
synchronized (MyLock.locka)
{
System.out.println(Thread.currentThread().getName()+"...else lockb");
}
}
}
}
}
class MyLock
{
public static final Object locka = new Object();
public static final Object lockb = new Object();
}
class DeadLockDemo
{
public static void main(String[] args)
{
Test a1 = new Test(true);
Test a2 = new Test(false);
Thread t1 = new Thread(a1);
Thread t2 = new Thread(a2);
t1.start();
t2.start();
}
}
0 0
- java死锁,避免死锁
- Java.死锁
- Java死锁
- java死锁
- java ----死锁
- Java死锁
- java 死锁
- Java - 死锁
- java 死锁
- JAVA 死锁
- java死锁
- java死锁
- Java死锁
- Java - 死锁
- Java 死锁
- java 死锁
- java死锁
- Java死锁
- GraphLite图计算PageRank
- RabbitMQ(六)
- 数据结构 二叉搜索树
- ASP.Net MVC + Data Table 实现分页+排序
- linux nginx启动,重启,关闭命令
- java死锁
- Android绑定EditText自动弹出自定义软键盘不同按键设置不同背景的实现(自动向上顶适应布局)
- 队列练习1 : HDOJ1276
- 贪心——HDU 4415
- 链表面试指南
- Oracle体系结构详解(转)
- arm开发板运行应用程序出现:-/bin/sh:xxx:not found 解决办法
- 和为S的两个数字
- 链表9:环形链表插值