@@ -14,17 +14,46 @@ show-busy-java-threads.sh
1414
1515``` bash
1616$ ./show-busy-java-threads.sh
17- The stack of busy(0 .0%) thread(30509/0x772d ) of java process(29213 ) of user(foo ):
18- " Attach Listener " daemon prio=10 tid=0x0000000042171800 nid=0x772d waiting on condition [0x0000000000000000 ]
17+ The stack of busy(57 .0%) thread(23355/0x5b3b ) of java process(23269 ) of user(admin ):
18+ " pool-1-thread-1 " prio=10 tid=0x000000005b5c5000 nid=0x5b3b runnable [0x000000004062c000 ]
1919 java.lang.Thread.State: RUNNABLE
20-
21- The stack of busy(0.0%) thread(29230/0x722e) of java process(29213) of user(foo):
22- " GC Daemon" daemon prio=10 tid=0x00007f21340ec800 nid=0x722e in Object.wait () [0x00007f2133ae3000]
23- java.lang.Thread.State: TIMED_WAITING (on object monitor)
24- at java.lang.Object.wait(Native Method)
25- - waiting on < 0x00000000a0000120> (a sun.misc.GC$LatencyLock )
26- at sun.misc.GC$Daemon .run(GC.java:100)
27- - locked < 0x00000000a0000120> (a sun.misc.GC$LatencyLock )
20+ at java.text.DateFormat.format(DateFormat.java:316)
21+ at com.xxx.foo.services.common.DateFormatUtil.format(DateFormatUtil.java:41)
22+ at com.xxx.foo.shared.monitor.schedule.AppMonitorDataAvgScheduler.run(AppMonitorDataAvgScheduler.java:127)
23+ at com.xxx.foo.services.common.utils.AliTimer$2 .run(AliTimer.java:128)
24+ at java.util.concurrent.ThreadPoolExecutor$Worker .runTask(ThreadPoolExecutor.java:886)
25+ at java.util.concurrent.ThreadPoolExecutor$Worker .run(ThreadPoolExecutor.java:908)
26+ at java.lang.Thread.run(Thread.java:662)
27+
28+ The stack of busy(26.1%) thread(24018/0x5dd2) of java process(23269) of user(admin):
29+ " pool-1-thread-2" prio=10 tid=0x000000005a968800 nid=0x5dd2 runnable [0x00000000420e9000]
30+ java.lang.Thread.State: RUNNABLE
31+ at java.util.Arrays.copyOf(Arrays.java:2882)
32+ at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
33+ at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:572)
34+ at java.lang.StringBuffer.append(StringBuffer.java:320)
35+ - locked < 0x00000007908d0030> (a java.lang.StringBuffer)
36+ at java.text.SimpleDateFormat.format(SimpleDateFormat.java:890)
37+ at java.text.SimpleDateFormat.format(SimpleDateFormat.java:869)
38+ at java.text.DateFormat.format(DateFormat.java:316)
39+ at com.xxx.foo.services.common.DateFormatUtil.format(DateFormatUtil.java:41)
40+ at com.xxx.foo.shared.monitor.schedule.AppMonitorDataAvgScheduler.run(AppMonitorDataAvgScheduler.java:126)
41+ at com.xxx.foo.services.common.utils.AliTimer$2 .run(AliTimer.java:128)
42+ at java.util.concurrent.ThreadPoolExecutor$Worker .runTask(ThreadPoolExecutor.java:886)
43+ at java.util.concurrent.ThreadPoolExecutor$Worker .run(ThreadPoolExecutor.java:908)
44+ at java.lang.Thread.run(Thread.java:662)
45+
46+ The stack of busy(0.4%) thread(24021/0x5dd5) of java process(23269) of user(admin):
47+ " pool-1-thread-5" prio=10 tid=0x000000005bc1c000 nid=0x5dd5 waiting on condition [0x000000004149e000]
48+ java.lang.Thread.State: WAITING (parking)
49+ at sun.misc.Unsafe.park(Native Method)
50+ - parking to wait for < 0x0000000793e77408> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject )
51+ at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
52+ at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject .await(AbstractQueuedSynchronizer.java:1987)
53+ at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
54+ at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
55+ at java.util.concurrent.ThreadPoolExecutor$Worker .run(ThreadPoolExecutor.java:907)
56+ at java.lang.Thread.run(Thread.java:662)
2857
2958 ...
3059```
0 commit comments