多线程——同步嵌套造成死锁问题
来源:互联网 发布:备案域名可以不注销吗 编辑:程序博客网 时间:2024/05/16 11:59
package com.qianfeng.demo02;/** * 同步的另外一个弊端:死锁 * * 最常见的死锁的情况: * 同步嵌套,同步中还有同步,然后两个同步用的不是一把锁。 * * 不是使用死锁,而是避免死锁。 * * 尽量避免同步嵌套的情况。 * */public class DeadLockDemo01 {public static void main(String[] args) {SaleTicket st = new SaleTicket();Thread t0 = new Thread(st);Thread t1 = new Thread(st);t0.start();try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}st.setFlag(false);t1.start();}}class SaleTicket implements Runnable{private int num = 100;Object obj = new Object();private boolean flag = true;public void setFlag(boolean flag) {this.flag = flag;}public boolean isFlag() {return flag;}@Overridepublic void run() {if (flag) {while (true) {synchronized (obj) {show();}}}else {while (true) {show(); //出现同步的嵌套,可能会产生死锁}}}public synchronized void show(){synchronized (obj) {if (num>0) {try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"...sale.."+num--);}}}}
0 1
- 多线程——同步嵌套造成死锁问题
- 多线程同步死锁问题
- Java 多线程同步、死锁问题
- 黑马程序员:多线程同步造成的死锁示例及理解
- 一些防止多线程同步造成死锁的技巧
- Thread(多线程 死锁 同步中嵌套同步,并且锁不同)
- 同步嵌套死锁例子
- 同步嵌套,死锁实例
- 多线程造成死锁的例子
- HashMap 多线程push造成死锁
- 关于多线程操作同步对象造成死锁的解决方式(一)
- 关于多线程操作同步对象造成死锁的解决方式(二)
- java多线程同步死锁
- 多线程之同步死锁
- 多线程 同步与死锁
- 多线程——死锁
- 多线程——死锁
- JAVA基础 day11 多线程 同步代码块 死锁问题
- HDU 5617 多维dp降维问题,回文串匹配
- Ganglia在CentOS7_x86_64上的yum安装与配置
- Redis Memcache SSDB比较
- remap()函数
- 超全!整理常用的iOS第三方资源
- 多线程——同步嵌套造成死锁问题
- 【漫画】Java正在死去?
- 在win7上的eclipse向hadoop提交作业异常-权限/设置调度器
- 10个最受欢迎的免费WordPress主题
- 让人头大的Tablet PC
- 降低WordPress网站跳出率的10个小…
- 【Qt开发】foreach用法
- 为何糟糕的代码随处可见?
- 是谁杀死了MySQL后记