zoukankan      html  css  js  c++  java
  • 【线程分析】

    http://blog.csdn.net/bzfys/article/details/53504399分析

    线程分析工具/方法:

    jvisualvm:

    在左侧双击某java进程后,右边点击线程dump即可查看。

    但被分析的进程如果挂掉,此工具无法连接分析。

    jstack:

    jstack既可以对活着的进程做dump,也可以对core文件做线程dump。

    1.查找当前运行的所有java进程(只能看运行的):ps -ef|grep java

       查看本机所有java进程:jps  -l 

    2.将某进程的所有线程信息打印到指定文件:jstack  pid>文件路径

       (文件不存在会自动创建)

      对于已经挂掉的没响应的进程:jstack  -F -m -l pid>文件路径

    3.top -H -p  pid

    按占用率高低显示某个进程中的所有线程(该线程id需要转换为16进制才能去dump文件中查找)

    gdb

    最后一个工具,是linux平台的。

    当对使用jstack对core文件做线程dump时,却报错了,得不到任何的dump信息时,可以用它。

    它的用法是:

    gdb <executable> <core>

    其中,executable指的是java所在的目录,如:

    D:Program FilesJavajdk1.7.0_10in

    上面的是windows环境下的java命令路径,请对应到linux环境下的改路径。

    线程分析:

    dump文件中值得关注的线程状态有:

    阻塞Blocked

    死锁Deadlock

    等待资源Waiting  on  condition

    等待获取监视器Waiting  on  monitor  entry

    新生的小心情
  • 相关阅读:
    AOP动态代理两种方式
    Spring AOP的两种代理方式
    面试中关于Redis的问题看这篇就够了
    关于redis,学会这8点就够了
    什么是MVCC
    JAVA 中BIO,NIO,AIO的理解
    JAVA异常体系结构详解
    Java多线程:由浅入深看synchronized的底层实现原理
    为什么wait,notify和notifyAll要与synchronized一起使用?
    Java并发之AQS详解
  • 原文地址:https://www.cnblogs.com/jianmianruxin/p/7659532.html
Copyright © 2011-2022 走看看