java 线程监控

线程的五种状态

* 新建:new

* 运行:runnable

* 等待:waitting(无限期等待),timed waitting(限期等待)

* 阻塞:blocked

* 结束:terminated

                        线程转换关系

wait和sleep区别: 分析这两个方法:从执行权和锁上来分析:

wait:可以指定时间也可以不指定时间。不指定时间,只能由对应的notify或者notifyAll来唤醒。

sleep:必须指定时间,时间到自动从冻结状态转成运行状态(临时阻塞状态)。

wait:线程会释放执行权,而且线程会释放锁。

Sleep:线程会释放执行权,但不是不释放锁。

 

线程的两种监控方法

一,jvisualvm,图形界面的方式 监控之前先对jvm加监控参数,在tomcat的bin目录下,catalina.sh文件中,添加: JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.1.108"

1-改port

2-改hostname为本机ip

win系统控制台输入 jvisualvm 启动JAVA Visualvm

 

 

二,jstack pid(端口号):命令行方式

三、jstack pid(端口号) >a.log 输出日志

 

posted @ 2019-06-10 23:41  怪圣卡杰  阅读(3896)  评论(0编辑  收藏  举报