zoukankan      html  css  js  c++  java
  • java 性能检测工具 检测死锁等

    死锁检测方法

    1 JConsole 找到需要查看的进程,打开线程选项卡,点击检测死锁

    2 jps查看java进程ID,使用jstack  7412输出信息

    3 使用jvisualvm连接java虚拟机,查看线程检测死锁

    解决方法:

      四个条件打破一个即可,但是代价不同,最简单的编码就是顺序加锁和解锁

    现在我们介绍下如何避免死锁的几个常见方法。《java变发编程的艺术》

    • 避免一个线程同时获取多个锁。
    • 避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。
    • 尝试使用定时锁,使用tryLock(timeout)来替代使用内部锁机制。
    • 对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败。

    检测CPU使用过高:http://flysnowxf.iteye.com/blog/1162691

      TOP找出Cpu使用高的进程,这里我们分析21125这个java进程。

      先输入top -p 21125,然后再按shift+h。这里意思为只查看21125的进程,并且显示线程。

      jstack查找这个线程的信息

    Java自带的性能监测工具用法简介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm

    http://blog.csdn.net/feihong247/article/details/7874063#

    jstack

    jstack 是一个可以返回在应用程序上运行的各种各样线程的一个完整转储的实用程序,您可以使用它查明问题。jstack [-l] <pid>,jpid可以通过使用jps命令来查看当前Java程序的jpid值,-l是可选参数,它可以显示线程阻塞/死锁情况。

  • 相关阅读:
    5.Docker服务进程关系
    朴素贝叶斯知识点概括
    k近邻法(KNN)知识点概括
    机器学习的应用实例
    HNU 10111 0-1矩阵
    CSU 1421 Necklace
    Poj 3469 Dual Core CPU
    Poj 2135 Farm Tour
    Poj 3180 The Cow Prom
    HDU 1004 Let the Balloon Rise
  • 原文地址:https://www.cnblogs.com/clds/p/5499458.html
Copyright © 2011-2022 走看看