zoukankan      html  css  js  c++  java
  • jstack 使用

    1、通过top 拿到占用cpu比较高的几个进程的pid ,如A
    2、top -Hp A:找出占用cpu过高的线程,记录下PID 如1,2,转换成十六进制。printf "%x " 21742,如b
    3、jstack -l A>test.txt  在test.txt文档中找b相关的信息就行分析

    • 死锁,Deadlock(重点关注)
    • 执行中,Runnable
    • 等待资源,Waiting on condition(重点关注)
    • 等待获取监视器,Waiting on monitor entry(重点关注)
    • 对象等待中,Object.wait() 或 TIMED_WAITING
    • 暂停,Suspended
    • 阻塞,Blocked(重点关注)
    • 停止,Parked

    Runnable

    线程正在运行中。一般指该线程正在执行状态中,该线程占用了资源,正在处理某个请求,有可能正在传递SQL到数据库执行,有可能在对某个文件操作,有可能进行数据类型等转换。

    Deadlock

    同一个地址被不同线程占用。

    Wait on condition

    等待资源,或等待某个条件的发生。具体原因需结合 stacktrace来分析。

      • 常见情况是该线程在 sleep,等待 sleep的时间到了时候,将被唤醒。关键字:TIMED_WAITING,sleeping,parking。TIMED_WAITING可能是调用了有超时参数的wait所引起的。parking指线程处于挂起中。
        下面是一个典型的sleep引起的Wait on condition

    Blocked

    线程阻塞,是指当前线程执行过程中,所需要的资源长时间等待却一直未能获取到,被容器的线程管理器标识为阻塞状态,可以理解为等待资源超时的线程。
    如果线程处于Blocked状态,但是原因不清楚。可以使用jstack -m pid得到线程的mixed信息。

    参考:https://blog.csdn.net/bluetjs/article/details/78040571

  • 相关阅读:
    网络流之转换为对偶图
    BZOJ 1051: [HAOI2006]受欢迎的牛(SCC)
    BZOJ[HNOI2005]狡猾的商人(差分约束)
    BZOJ [ZJOI2007]矩阵游戏(二分图匹配)
    BZOJ 1191: [HNOI2006]超级英雄Hero(二分图匹配)
    BZOJ 1270: [BeijingWc2008]雷涛的小猫(DP)
    BZOJ 1303: [CQOI2009]中位数图
    BZOJ [HNOI2006]鬼谷子的钱袋
    BZOJ1002 [FJOI2007]轮状病毒(最小生成树计数)
    A* 算法讲解
  • 原文地址:https://www.cnblogs.com/danyuzhu11/p/10451653.html
Copyright © 2011-2022 走看看