使用process explorer分析JAVA进程

使用process explorer分析JAVA进程

平时我们在处理性能相关问题时,有时只知道JAVA.exe占用CPU很高,而不知道到底哪些JAVA进程占用比较高的CPU;现在笔者通过使用process explorer来分析具体的JAVA进程,有帮于定位程序中的相关代码。

1.下载一个process explorer,其实process explorer就是一个增强版的资源管理器,不同于平常的资源管理器的是,他能分析出来具体某个EXE程序,到底有哪些进程组成;

2.使用process explorer很简单,打开process explorer,找到相关的JAVA.exe,点属性可以看到所有属于该EXE的进程信息(包括进程号,占用CPU资源等信息);我们任意找个进程号3220(十进制),也许你会问这有什么用,还是对应不到具体的程序里面的相关代码;这就需要打印出当前JAVA应用程序的进程堆栈信息

使用process explorer分析JAVA进程_第1张图片

3.打印出当前JAVA应用的JVM堆栈信息(在apusic下为例CTRL+break,也可以用JDK1.6下的jps和jstack命令,可以获得完整的thread ):这里的进程号是16进制的,所以需进行转换3220—>C94,然后就可以以此去找进程,灰色部分标识即是。

当前在处理实际问题时,我们一般是找CPU占用比较靠前的几个进程来进行分析,这样更具针对性;

Full thread dump Java HotSpot(TM) Client VM (1.5.0_11-b03 mixed mode, sharing):

"Idle HTTPHandler-13" prio=6 tid=0x02fd9640 nid=0x994 in Object.wait() [0x0575f0
00..0x0575fb68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x23065020> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl.getWork(Unknown Source)
        - locked <0x23065020> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)

"Idle HTTPHandler-12" prio=6 tid=0x02fd92e8 nid=0xf18 in Object.wait() [0x0571f0
00..0x0571fbe8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x23065020> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl.getWork(Unknown Source)
        - locked <0x23065020> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)

"Idle HTTPHandler-10" prio=6 tid=0x03a11b40 nid=0xbc0 in Object.wait() [0x0569f0
00..0x0569fce8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x23065020> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl.getWork(Unknown Source)
        - locked <0x23065020> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)

"Idle HTTPHandler-9" prio=6 tid=0x038e4798 nid=0x65c in Object.wait() [0x0565f00
0..0x0565fd68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x23065020> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl.getWork(Unknown Source)
        - locked <0x23065020> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)

"Idle HTTPHandler-3" prio=6 tid=0x03aef928 nid=0xdf0 in Object.wait() [0x054df00
0..0x054dfc68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x23065020> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl.getWork(Unknown Source)
        - locked <0x23065020> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)

"HttpReader" prio=6 tid=0x03dd1428 nid=0xcb8 runnable [0x0519f000..0x0519f9e8]
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.j
ava:275)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelector
Impl.java:257)
        at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:138)

        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
        - locked <0x25e58648> (a sun.nio.ch.Util$1)
        - locked <0x25e58658> (a java.util.Collections$UnmodifiableSet)
        - locked <0x25e585d0> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
        at com.apusic.web.http.HttpReaderThread$SubSelector.run(Unknown Source)

"MuxReader" prio=6 tid=0x03dd1d30 nid=0x6d4 runnable [0x0511f000..0x0511fa68]
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.j
ava:275)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelector
Impl.java:257)
        at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:138)

        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
        - locked <0x25e5b7a8> (a sun.nio.ch.Util$1)
        - locked <0x25e5b7b8> (a java.util.Collections$UnmodifiableSet)
        - locked <0x25e5b730> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
        at com.apusic.net.ReaderThread$SubSelector.run(Unknown Source)

"Compass Executor Thread [pool-2-thread-10]" daemon prio=6 tid=0x02e6fe30 nid=0x
2ac waiting on condition [0x0545f000..0x0545fb68]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Compass Executor Thread [pool-2-thread-9]" daemon prio=6 tid=0x02e86d48 nid=0xb
68 waiting on condition [0x0541f000..0x0541fae8]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Compass Executor Thread [pool-2-thread-8]" daemon prio=6 tid=0x03942508 nid=0x9
b0 waiting on condition [0x053df000..0x053dfbe8]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Compass Executor Thread [pool-2-thread-7]" daemon prio=6 tid=0x02e87058 nid=0xe
7c waiting on condition [0x0539f000..0x0539fce8]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Compass Executor Thread [pool-2-thread-6]" daemon prio=6 tid=0x02e86ed0 nid=0xd
64 waiting on condition [0x0535f000..0x0535fc68]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Compass Executor Thread [pool-2-thread-5]" daemon prio=6 tid=0x02f80d20 nid=0xf
34 waiting on condition [0x0531f000..0x0531f9e8]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Compass Executor Thread [pool-2-thread-4]" daemon prio=6 tid=0x03d70d40 nid=0xb
a4 waiting on condition [0x052df000..0x052dfd68]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Compass Executor Thread [pool-2-thread-3]" daemon prio=6 tid=0x02fa5908 nid=0xd
d8 waiting on condition [0x0529f000..0x0529fa68]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Compass Executor Thread [pool-2-thread-2]" daemon prio=6 tid=0x02fa5780 nid=0xe
24 waiting on condition [0x0525f000..0x0525fae8]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Compass Executor Thread [pool-2-thread-1]" daemon prio=6 tid=0x03df4d40 nid=0xc
9c waiting on condition [0x0521f000..0x0521fb68]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.jav
a:359)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"AutoDeployer" prio=6 tid=0x039d8900 nid=0xe54 in Object.wait() [0x0515f000..0x0
515fce8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x25618bb0> (a com.apusic.deploy.runtime.AutoDeployer)
        at com.apusic.deploy.runtime.AutoDeployer.run(Unknown Source)
        - locked <0x25618bb0> (a com.apusic.deploy.runtime.AutoDeployer)
        at java.lang.Thread.run(Thread.java:595)

"Compass Scheduled Executor Thread [pool-4-thread-1]" daemon prio=6 tid=0x02e27a
88 nid=0xc94 waiting on condition [0x050df000..0x050df9e8]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146
)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.awaitNanos(AbstractQueuedSynchronizer.java:1803)
        at java.util.concurrent.DelayQueue.take(DelayQueue.java:135)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:504)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:497)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Java2D Disposer" daemon prio=10 tid=0x03b5abd0 nid=0xf5c in Object.wait() [0x04
09f000..0x0409fa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x23c17ed0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x23c17ed0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at sun.java2d.Disposer.run(Disposer.java:125)
        at java.lang.Thread.run(Thread.java:595)

"MySQL Statement Cancellation Timer" daemon prio=6 tid=0x03b30f10 nid=0xbd4 in O
bject.wait() [0x03fef000..0x03fefae8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x236b5bb0> (a java.util.TaskQueue)
        at java.lang.Object.wait(Object.java:474)
        at java.util.TimerThread.mainLoop(Timer.java:483)
        - locked <0x236b5bb0> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"Timer-1" daemon prio=6 tid=0x02ebd618 nid=0x930 in Object.wait() [0x03faf000..0
x03fafb68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x236ac108> (a java.util.TaskQueue)
        at java.lang.Object.wait(Object.java:474)
        at java.util.TimerThread.mainLoop(Timer.java:483)
        - locked <0x236ac108> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"Idle JMSHandler-4" prio=6 tid=0x036239e8 nid=0x8c8 in Object.wait() [0x03f5f000
..0x03f5fbe8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x23064fe0> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl.getWork(Unknown Source)
        - locked <0x23064fe0> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)

"Idle JMSHandler-3" prio=6 tid=0x03623060 nid=0x9f4 in Object.wait() [0x03f1f000
..0x03f1fc68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x23064fe0> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl.getWork(Unknown Source)
        - locked <0x23064fe0> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)

"Idle JMSHandler-2" prio=6 tid=0x033448a8 nid=0x568 in Object.wait() [0x03edf000
..0x03edfce8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x23064fe0> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl.getWork(Unknown Source)
        - locked <0x23064fe0> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)

"JMSReader" prio=6 tid=0x0321e850 nid=0xe64 runnable [0x03e9f000..0x03e9fd68]
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.j
ava:275)
        at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelector
Impl.java:257)
        at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:138)

        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
        - locked <0x231c3fa8> (a sun.nio.ch.Util$1)
        - locked <0x231c3fb8> (a java.util.Collections$UnmodifiableSet)
        - locked <0x231c3f30> (a sun.nio.ch.WindowsSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)
        at com.apusic.jms.transport.ReaderThread.run(Unknown Source)

"pool-1-thread-5" prio=6 tid=0x033349c0 nid=0x1a4 waiting on condition [0x03e5f0
00..0x03e5f9e8]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146
)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.awaitNanos(AbstractQueuedSynchronizer.java:1803)
        at java.util.concurrent.DelayQueue.take(DelayQueue.java:135)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:504)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:497)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Timer-0" prio=6 tid=0x03332c20 nid=0xd40 in Object.wait() [0x0361f000..0x0361fa
68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x231c40b0> (a java.util.TaskQueue)
        at java.lang.Object.wait(Object.java:474)
        at java.util.TimerThread.mainLoop(Timer.java:483)
        - locked <0x231c40b0> (a java.util.TaskQueue)
        at java.util.TimerThread.run(Timer.java:462)

"pool-1-thread-4" prio=6 tid=0x03322e48 nid=0x67c waiting on condition [0x035df0
00..0x035dfae8]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146
)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.awaitNanos(AbstractQueuedSynchronizer.java:1803)
        at java.util.concurrent.DelayQueue.take(DelayQueue.java:135)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:504)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:497)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Running JMSHandler-1" prio=6 tid=0x03327c28 nid=0x84 in Object.wait() [0x0359f0
00..0x0359fb68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x231c41b0> (a java.lang.Object)
        at com.apusic.jms.message.pool.impl.FileTransportMessageStorePoolPullerT
hread.run(Unknown Source)
        - locked <0x231c41b0> (a java.lang.Object)
        at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)

"HTTPSessionSwapper" prio=6 tid=0x03306880 nid=0x160 in Object.wait() [0x0355f00
0..0x0355fbe8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x231b8310> (a java.lang.Object)
        at com.apusic.web.session.SessionManager$HouseKeeper.run(Unknown Source)

        - locked <0x231b8310> (a java.lang.Object)

"pool-1-thread-3" prio=6 tid=0x032fe128 nid=0xac0 waiting on condition [0x0351f0
00..0x0351fc68]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146
)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.awaitNanos(AbstractQueuedSynchronizer.java:1803)
        at java.util.concurrent.DelayQueue.take(DelayQueue.java:135)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:504)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:497)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"Thread-3" prio=6 tid=0x032fc310 nid=0xa34 in Object.wait() [0x034df000..0x034df
d68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x2318afa8> (a com.sun.corba.se.impl.javax.rmi.CORBA.KeepA
live)
        at java.lang.Object.wait(Object.java:474)
        at com.sun.corba.se.impl.javax.rmi.CORBA.KeepAlive.run(Util.java:736)
        - locked <0x2318afa8> (a com.sun.corba.se.impl.javax.rmi.CORBA.KeepAlive
)

"pool-1-thread-2" prio=6 tid=0x032e1020 nid=0xcbc waiting on condition [0x0349f0
00..0x0349f9e8]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146
)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.awaitNanos(AbstractQueuedSynchronizer.java:1803)
        at java.util.concurrent.DelayQueue.take(DelayQueue.java:135)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:504)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:497)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"MuxSecureListener" prio=6 tid=0x032a96a0 nid=0x58c runnable [0x0345f000..0x0345
fa68]
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
        - locked <0x23112fb8> (a java.net.SocksSocketImpl)
        at java.net.ServerSocket.implAccept(ServerSocket.java:450)
        at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSock
etImpl.java:259)
        at com.apusic.net.BlockingListenerThread.run(Unknown Source)

"MuxListener" prio=6 tid=0x03262810 nid=0x844 runnable [0x0341f000..0x0341fae8]
        at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
        at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.jav
a:145)
        - locked <0x230a5eb8> (a java.lang.Object)
        at com.apusic.net.NonBlockingListenerThread.run(Unknown Source)

"pool-1-thread-1" prio=6 tid=0x0326ea88 nid=0x2d8 waiting on condition [0x033df0
00..0x033dfb68]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146
)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.awaitNanos(AbstractQueuedSynchronizer.java:1803)
        at java.util.concurrent.DelayQueue.take(DelayQueue.java:135)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:504)
        at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
e(ScheduledThreadPoolExecutor.java:497)
        at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.ja
va:470)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:674)
        at java.lang.Thread.run(Thread.java:595)

"LogManager" prio=2 tid=0x032323e0 nid=0x660 waiting on condition [0x0339f000..0
x0339fbe8]
        at sun.misc.Unsafe.park(Native Method)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
.await(AbstractQueuedSynchronizer.java:1767)
        at com.apusic.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
        at com.apusic.logging.manager.ServerLogManager$PushThread.dequeue(Unknow
n Source)
        at com.apusic.logging.manager.ServerLogManager$PushThread.run(Unknown So
urce)

"Low Memory Detector" daemon prio=6 tid=0x00a93e18 nid=0xd88 runnable [0x0000000
0..0x00000000]

"CompilerThread0" daemon prio=10 tid=0x00a64aa8 nid=0xfe8 waiting on condition [
0x00000000..0x02c3fa48]

"Signal Dispatcher" daemon prio=10 tid=0x00aa7818 nid=0xce8 waiting on condition
 [0x00000000..0x00000000]

"Finalizer" daemon prio=8 tid=0x00a61330 nid=0xabc in Object.wait() [0x02bbf000.
.0x02bbfa68]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x22fda4d8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
        - locked <0x22fda4d8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x00a60780 nid=0xc44 in Object.wait() [0x
02b7f000..0x02b7fae8]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x22fda558> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:474)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x22fda558> (a java.lang.ref.Reference$Lock)

"main" prio=6 tid=0x00039988 nid=0x34c in Object.wait() [0x0007f000..0x0007fc3c]

        at java.lang.Object.wait(Native Method)
        - waiting on <0x22ff02e0> (a com.apusic.server.J2EEServer)
        at java.lang.Object.wait(Object.java:474)
        at com.apusic.server.J2EEServer.startup(Unknown Source)
        - locked <0x22ff02e0> (a com.apusic.server.J2EEServer)
        at com.apusic.server.Main.main(Unknown Source)

"VM Thread" prio=10 tid=0x00a8fcf0 nid=0xa0c runnable

"VM Periodic Task Thread" prio=10 tid=0x00aa6ae8 nid=0x164 waiting on condition

你可能感兴趣的:(java,thread,.net,jms,sun)