package thread;
/**
* JAVA多线程 死锁程序
* @author hero
*
*/
class TestLock implements Runnable {
private boolean flag;
TestLock(boolean flag){
this.flag = flag;
}
public void run() {
if(flag){
while(true){
synchronized (MyLock.locka) {
//进入拿到A锁--等待B锁
System.out.println("if locka");
synchronized (MyLock.lockb) {
System.out.println("if lockb");
}
}
}
}else{
while(true){
synchronized (MyLock.lockb) {
//进入 拿到B锁--等待A锁
System.out.println("else lockb");
synchronized (MyLock.locka) {
System.out.println("else locka");
}
}
}
}
}
}
class MyLock{//锁类
static Object locka = new Object();
static Object lockb = new Object();
}
public class DeadLockTest8 {
/**
* @param args
*/
public static void main(String[] args) {
Thread t1 = new Thread(new TestLock(true));//拿A锁--等B锁
Thread t2 = new Thread(new TestLock(false));//拿B锁--等A锁
t1.start();
t2.start();
}
}
分享到:
相关推荐
java多线程死锁预防机制研究,java多线程死锁预防机制研究
明白死锁产生的原因,在程序中演示死锁产生并从而实现多线程陈旭解决死锁(deadlock)这一类问题。
Java多线程程序死锁检查 JCarder
基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip ...
java线程实践,了解线程死锁,同步问题
java源码:Java多线程程序死锁检查 JCarder.zip
Java多线程程序死锁检查 JCarder.7z
死锁问题,java多线程死锁
主要介绍了Java多线程死锁,结合实例形式分析了Java多线程出现死锁的相关原因与操作注意事项,需要的朋友可以参考下
这些java的代码demo,是本人几篇多线程文章的实例代码 http://www.cnblogs.com/yaoxiaowen/p/6576779.html
java多线程及死锁
基于Java的多线程程序死锁检查 JCarder.zip
基于java的多线程程序死锁检查 JCarder.zip
java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁源码java死锁...
Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java线程:新特征-锁(下) Java线程:新特征-信号量 Java线程:新...
检测线程死锁,告诉你如何检测线程死锁,学习一下吧
源码—Java多线程5—死锁和wait notify notifyAll
Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java线程:新特征-锁(下) Java线程:新特征-信号量 Java线程:新特征-...
Java线程:概念与原理 2 一、操作系统中线程和进程的概念 2 二、Java中的线程 3 三、Java中关于线程的名词解释 3 四、线程的状态转换和生命周期 4 ...Java线程:并发协作-死锁 55 Java线程:线程之间的数据传递 58
主要介绍了java 多线程死锁详解及简单实例的相关资料,需要的朋友可以参考下