标签:gem jdk 详情 .sh 无限 rem 不同的 The 展示
线程的五种状态
* 新建:new
* 运行:runnable
* 等待:waitting(无限期等待),timed waitting(限期等待)
* 阻塞:blocked
* 结束:terminated
线程的两种监控方法
一,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=10.0.0.9"
1-改port
2-改hostname为本机ip
如果想要监控和多个tomcat,则需要在每一个tomcat下都添加这行参数,且端口号不重复
保存并重启tomcat
查看10086的进程是否存在:netstat -an|grep 10086
或者
查看10086的使用详情:lsof -i:10086
windows_cmd下,输入(前提,jdk配好环境变量)
配置ip
在监控的ip上右键_添加JMX连接
填写端口号
命令行执行 netstat -an|grep 10086
查看线程
二,jstack pid(进程号):命令行方式,打印当前所有的线程及执行状态
由于此命令会直接把内容展示在屏幕上,不好查看,所以最好重定向输出
如,把结果打印到a.log文件里面:jstack 8743 > a.log
每一段这种就是一个线程
构建几个场景看看
构造线程状态的Java脚本:java -jar thread-test.jar [1|2|3|4]
构造不同的状态的线程
1:runnable
java -jar thread-test.jar 1
复制一个会话,查看刚刚运行的java的进程
2:waitting
java -jar thread-test.jar 2
3:timedWaitting
java -jar thread-test.jar 3
4:blocked
java -jar thread-test.jar 4
标签:gem jdk 详情 .sh 无限 rem 不同的 The 展示
原文地址:https://www.cnblogs.com/zhongyehai/p/10290155.html