WAITING: 等待, TIMED_WAITING: 105, TERMINATED: 终止。 TIMED_WAITING(超时等待):该状态不同于WAITING,它可以在指定的时间后自行返回。 thread 常用的命令 输入thread,双击 tab,可以看到 thread 相关的所有命令。 显示第一页的线程: thread thread 没有参数时,默认按照 CPU 增量时间(DELTA_TIME)降序排列,只显示...
thread-b 此命令会列出当前阻塞其他线程的线程信息,包括线程ID、状态以及它持有的锁。例如,输出可能会显示某个线程处于TIMED_WAITING状态,并指出该线程持有一个锁,同时阻塞了其他线程。 #3. 分析输出 关注锁定对象:注意输出中被- locked标记的行,这表示该线程持有的锁。如果该锁导致了其他线程的阻塞,这里会有明确提...
WAITING: 等待线程 TIMED_WAITING: 超时等待线程 TERMINATED: 死亡状态 其他线程信息和dashboard一样 2.thread 线程id -->查看指定线程并输出线程栈(当我们发现哪个线程占用cpu高的时候可以继续看一下他的 栈情况),如下 3.thread -n 3 -->查看最繁忙的n个线程 4.thread -n 3 -i 1000 -->查看1000ms内...
[arthas@28114]$ thread--stateWAITING Threads Total:16, NEW:0, RUNNABLE:9, BLOCKED:0, WAITING:3, TIMED_WAITING:4, TERMINATED:0ID NAME GROUP PRIORITY STATE %CPU DELTA_TIME TIME INTERRUPTE DAEMON3Finalizer system8WAITING0.00.0000:0.000falsetrue20arthas-UserStat system9WAITING0.00.0000:0.001false...
1.thread -->查看当前进程的所有线程信息 参数说明: Threads Total: 总线程数 NEW: 初始状态的线程 RUNNABLE: 就绪(可运行状态)状态的线程 BLOCKED: 阻塞状态的线程 WAITING: 等待线程 TIMED_WAITING: 超时等待线程 TERMINATED: 死亡状态 其他线程信息和dashboard一样 ...
WAITING当线程调用以下方法时会进入: Object#wait() 而且不加超时参数 Thread#join() 而且不加超时参数 LockSupport#park() BLOCKED 阻塞,等待锁 jad jad com.demo.arthas.ArthasTest 可以使用 jad 命令直接反编译 class ognl '@com.demo.arthas.ArthasTest@hashSet' 查看变量 hashSet 中的数据 ognl '@com.demo...
这里说一下我查看waiting线程的的步骤 1.下载arthas-boot.jar 然后用java-jar的方式启动: curl-O https://arthas.aliyun.com/arthas-boot.jar java-jar arthas-boot.jar 2.输入其对应的id 4进入阿尔萨斯控制台 image 3.直接thread -all查看了一下所有java相关进程 ...
thread 1 | grep 'main('thread#显示所有线程的信息thread 1#显示1号线程的运行堆栈thread -b#查看阻塞的线程信息thread -n 3#查看最忙的3个线程,并打印堆栈thread -i 1000 -n 3#指定采样时间间隔,每过1000毫秒采样,显示最占时间的3个线程# 查看处于等待状态的线程(WAITING...
因为JVM 内存都没有啥异常,所以先看看 thread 的运行堆栈,考虑到是 pulsar 消费线程卡住了,所以我们需要加上线程状态已经过滤下线程的名称: thread --state WAITING | grep pulsar 此时就会列出当前 Java 进程中状态为 WATING 并且线程名称以 pulsar 开头的线程。
因为JVM 内存都没有啥异常,所以先看看 thread 的运行堆栈,考虑到是 pulsar 消费线程卡住了,所以我们需要加上线程状态已经过滤下线程的名称: thread --state WAITING | grep pulsar 此时就会列出当前 Java 进程中状态为 WATING 并且线程名称以 pulsar 开头的线程。