/**
多线程-死锁
同步中嵌套同步 而锁不同
*/
class Ticket implements Runnable
{
private int ticketNum = 1000;
Object obj = new Object();
boolean flag = true;
public void run(){
if(flag){
while(true){
synchronized(obj){
show();
}
}
}else{
while(true){
show();
}
}
}
public synchronized void show(){
synchronized(obj){
if(ticketNum>0){
try{
Thread.sleep(10);
}catch(Exception e){
}
System.out.println(Thread.currentThread().getName()+"show:..." + ticketNum--);
}
}
}
}
class DeadLocakDemo
{
public static void main(String[] args)
{
Ticket t = new Ticket();
Thread t1 = new Thread(t);//创建了一个线程
Thread t2 = new Thread(t);//创建了一个线程
t1.start();
try{
Thread.sleep(10);
}catch(Exception e){
}
t.flag = false;
t2.start();
}
}
分享到:
相关推荐
【IT十八掌徐培成】Java基础第09天-01.多线程-时间片-死锁演示.zip
Java多线程之-死锁.doc
基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip 基于java的开发源码-多线程程序死锁检查 JCarder.zip ...
明白死锁产生的原因,在程序中演示死锁产生并从而实现多线程陈旭解决死锁(deadlock)这一类问题。
Java多线程--避免同步机制带来的死锁问题及用Lock锁解决线程安全问题
java多线程死锁预防机制研究,java多线程死锁预防机制研究
Java多线程程序死锁检查 JCarder
基于Java的源码-多线程程序死锁检查 JCarder.zip
基于Java的实例源码-多线程程序死锁检查 JCarder.zip
java多线程及死锁
多线程简单工厂设计模式,工厂方法模式,单列模式,多线程死锁解决
死锁问题,java多线程死锁
Java多线程程序死锁检查 JCarder.7z
本文首先介绍了线程的有关概念,接着介绍了线程的生命期及其状态间的转换,多线程的调度 原则,线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口
基于Java的多线程程序死锁检查 JCarder.zip
基于java的多线程程序死锁检查 JCarder.zip
DllMain和多线程死锁[归类].pdf
Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java线程:新特征-锁(下) Java线程:新特征-信号量 Java线程:新...
详细的讲述了多线程的各种用法 Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠...
java源码:Java多线程程序死锁检查 JCarder.zip