最近在排查一个多线程的问题,dump 内存的时候,发现很多线程状态的问题。虽然线程状态已经看了很多,但是还是需要重新梳理一下。多线程问题,没有小问题,需要基础知识牢固,概念清晰,才好入手。 Java线程的六种状态以及切换 1.初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 2.运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统 … 继续阅读
线程状态
回复
最近在排查一个多线程的问题,dump 内存的时候,发现很多线程状态的问题。虽然线程状态已经看了很多,但是还是需要重新梳理一下。多线程问题,没有小问题,需要基础知识牢固,概念清晰,才好入手。 Java线程的六种状态以及切换 1.初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 2.运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统 … 继续阅读
jstack jstack是java虚拟机自带的一种堆栈跟踪工具,jstack命令主要用来查看Java线程的调用堆栈的,可以用来分析线程问题(如死锁)。 jstack [-l] pid jstack dump分析当前各个线程的运行情况,如是否存在死锁、是否存在一个线程长时间持有锁不放等等。 定位 在top命令中,已经获取到了占用cpu资源较高的线程pid,将该pid转成16进制的值,在thread … 继续阅读
JVM一些常用参数的整理 内存相关 参数 含义 说明 -Xms 1024m 初始堆大小 -Xmx 1024m 最大堆大小 -Xmn 500m 年轻代大小 -Xss 1024k 单个线程栈 -XX:PermSize=200m 永久代 before java8 -XX:MaxPermSize=300m 永久代 before java8 -XX:MetaspaceSize 元数据 after 8 -XX … 继续阅读