美文网首页
18 多线程死锁

18 多线程死锁

作者: 滔滔逐浪 | 来源:发表于2020-07-15 23:10 被阅读0次

多线程死锁产生的原因:
在同步中嵌套同步,会出现死锁的现象。

package com.taotao.zuoye.thread;

/**
 *@author tom
 *Date  2020/7/15 0015 22:45
 *
 */
public class Thread004  implements  Runnable {
    private  static  int count=100;
     private  Boolean flag=true;
     private  Object object=new Object();

    @Override
    public void run() {
        if(flag){
            while (count>0){
                synchronized (object){
                    try {
                             Thread.sleep(10);
                    }catch (Exception e){
                        e.getCause();
                    }
                    ticket();
                }
            }

        }else {
            while (count>0){
                ticket();
            }
        }




    }

    private  synchronized void ticket() {
        synchronized (object){
            try {

                Thread.sleep(10);
            }catch (Exception e){
                e.getCause();
            }
            if(count>0){
                System.out.println(Thread.currentThread().getName()+",正在开始出售:"+(100-count+1));
                count--;
            }

        }


    }

    public static void main(String[] args) {
        Thread004 thread004=new Thread004();
        new Thread(thread004,"窗口1").start();
        try {
            Thread.sleep(40);
            thread004.flag=false;
        }catch (Exception e){
            e.getCause();
        }
         new Thread(thread004,"窗口2").start();

    }
}



查找到当前JVM环境变量C:\Program Files\Java\jdk1.8.0_131\bin 找到
jconsole.exe工具,


image.png image.png

相关文章

  • 18 多线程死锁

    多线程死锁产生的原因:在同步中嵌套同步,会出现死锁的现象。 查找到当前JVM环境变量C:\Program File...

  • Java自学-多线程 死锁

    Java 演示多线程死锁 当业务比较复杂,多线程应用里有可能会发生死锁 步骤 1 : 演示死锁 线程1 首先占有对...

  • Java并发案例01---多线程之死锁

    多线程之死锁案例一

  • jstack命令:教你如何排查多线程问题

    这是之前的一个死锁案例: 一个多线程死锁案例,如何避免及解决死锁问题? 如程序中发生这样的死锁问题该如何排查呢?我...

  • 并发编程情况下几个相应问题简介

    1.并发编程的挑战之死锁 ​ 死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多...

  • 5. 死锁

    线程死锁 死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁。死锁通常发生在多个线程同时但以不同的顺序...

  • 多线程分析——死锁代码demo

    前言 本文主要是对Java多线程死锁代码demo的分析,对其过程以及死锁进行了大致的概括,希望对大家有帮助。 死锁...

  • 面试官:连多线程问题你都一问三不知,还要我怎么“放水”?

    面试官:问你几个多线程相关的问题吧,说一下导致线程死锁的原因,怎么解除线程死锁? 程序员阿里:这个...死锁......

  • 线程同步中的死锁

    何为死锁 多线程各自持有不同的锁,并互相试图获取对方已持有的锁,导致无限等待的状况,称为死锁。比如: 避免死锁 避...

  • iOS多线程总结

    多线程 优缺点,实际应用多线程比较死锁:使用同步sync,向同一个/当前的串行队添加任务,会产生死锁新等旧,旧等新...

网友评论

      本文标题:18 多线程死锁

      本文链接:https://www.haomeiwen.com/subject/fiyshktx.html