- 浏览: 74537 次
- 性别:
- 来自: 深圳
文章分类
最新评论
/* 死锁: 同步中嵌套同步 */ class Ticket implements Runnable{ private int tick = 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(tick>0){ try{Thread.sleep(10);}catch(Exception e){} System.out.println(Thread.currentThread().getName() +" code "+tick--); } } } } class Deadlock{ 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(); } }
class Test implements Runnable{ private boolean flag; Test(boolean flag){ this.flag = flag; } public void run(){ if(flag){ synchronized(MyLock.locka){ System.out.println("if locka"); synchronized(MyLock.lockb){ System.out.println("if lockb"); } } } else{ synchronized(MyLock.lockb){ System.out.println("MyLock.lockb"); synchronized(MyLock.locka){ System.out.println("MyLock.locka"); } } } } } class MyLock{ static Object locka = new Objecet(); static Object lockb = new Objecet(); } class Deadlock{ public static void main(String[] args){ Thread t1 = new Thread(new Test(true)); Thread t2 = new Thread(new Test(false)); t1.start(); t2.start(); } }
发表评论
-
151多线程(优先级&yield方法)
2015-10-28 11:16 656/* 养成习惯:数据共享用静态 */ class Dem ... -
150_多线程(Join方法)
2015-10-27 18:31 563/* join: 当A线程执行到了B线程的join方法 ... -
114_面向对象(多异常处理)_黑马程序员_Java基础视频
2015-10-25 23:27 657/* 对多异常的处理 1.生命异常时,建议声明更为具体的异 ... -
113_面向对象(异常声明throws)_黑马程序员_Java基础视频
2015-10-25 23:26 445/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
112_面向对象(异常try-catch)
2015-10-25 23:25 699/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
148_多线程(停止线程)
2015-10-25 23:16 547/* stop方法已经过时。 如何停止线程? 只有一 ... -
147_多线程(线程间通信-生产者消费者JDK5.0升级版)
2015-10-21 23:33 715/*JDK1.5及以上提供了多线程升级解决方案。 将同步Sy ... -
146_多线程(线程间通信-生产者消费者)
2015-10-20 23:35 595一个生产者一个消费者 ... -
144_多线程(线程间通信-等待唤醒机制)
2015-10-20 18:35 693class Res{ String name; Str ... -
142_多线程-线程间通信
2015-10-20 16:18 663/* 线程间通讯: 其实就是多线程在操作同一个资源。 但 ... -
140_多线程(多线程-单例设计模式-懒汉式)
2015-10-19 11:45 634/* 单例设计模式 饿汉式 class Single ... -
138_多线程(多线程-同步函数的锁是this)
2015-10-15 14:48 809/* 同步函数用的是哪一个锁呢? 函数需要被对象调用。那么 ... -
137_多线程(多线程-同步函数)
2015-10-13 23:25 569/* 需求:银行有一个金库。 有两个储户分别存300元 ... -
135_多线程(多线程的安全问题)
2015-10-13 18:07 581class TWindow implements Runnab ... -
多线程(创建线程-实现Runnable接口)
2015-10-10 00:19 518class TWindow implements Runnab ... -
133_多线程(售票的例子)
2015-10-09 23:48 598/* 需求:简单的买票程序 多个窗口卖票 */ c ... -
132_多线程(获取线程对象以及名称)
2015-10-09 23:30 1180/* 练习:创建两个线程,和主线程交替运行 线程都有自 ... -
多线程-继承Thread类
2015-10-09 00:26 1522/* 进程:是一个正在执行中的程序 每一个进程执行都有一个 ... -
包的应用
2015-10-08 23:28 1631package pack; class PackageD ... -
异常总结
2015-10-05 20:07 544异常是什么? 是对问题的描述,将问题进行对象的封装。 ...
相关推荐
【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接口
DllMain和多线程死锁[归类].pdf
基于Java的多线程程序死锁检查 JCarder.zip
基于java的多线程程序死锁检查 JCarder.zip
Java线程:并发协作-死锁 Java线程:volatile关键字 Java线程:新特征-线程池 Java线程:新特征-有返回值的线程 Java线程:新特征-锁(上) Java线程:新特征-锁(下) Java线程:新特征-信号量 Java线程:新...
详细的讲述了多线程的各种用法 Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠...
java源码:Java多线程程序死锁检查 JCarder.zip