zoukankan      html  css  js  c++  java
  • Java 死锁检测及避免

    一、死锁是什么

      在多线程环境下,两条或者多条线程相互持有一些资源,由于竞争资源关系,导致线程堵塞,需要其他线程释放资源才能继续运行。这种情况就是死锁。

      比如:ABA问题

     二、检测死锁

      1. jps 工具

        jps(Java virtual machine process status tool)是JDK5提供的显示所有Java进程pid命令。

    ➜  ~ jps
    79154 Launcher
    77783
    79309 Jps

      2. jstack 工具

        jstack是Java虚拟机提供的堆栈跟踪工具,jstack命令生成Java虚拟机当前时刻的线程快照。

        线程快照是Java虚拟机每条线程的方法堆栈集合,目的是检查线程长时间停顿的原因,如:线程死锁、死循环、请求外部资源的长时间等待。

      3. jconsole 工具

        jconsole是JDK5提供的内置Java性能分析工具。

  • 相关阅读:
    Python request
    Dockerfile详解
    k8s 英文文档翻译
    k8s 相关命令
    k8s 廖老师的分享
    Docker docker-compose安装
    Mysql 锁库与锁表
    Docker 二进制安装docker
    Java多线程的同步控制记录
    JAVA并行程序基础
  • 原文地址:https://www.cnblogs.com/naray/p/15493219.html
Copyright © 2011-2022 走看看