`
dongzhecao
  • 浏览: 27928 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用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应用程序的进程堆栈信息

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

  • 大小: 158.4 KB
分享到:
评论
2 楼 di1984HIT 2017-06-04  
     
1 楼 wangpeng12pm 2012-09-17  
这也没回答了这个问题啊 说了那么多

相关推荐

    ProcessExplorer_v15.12_Chs_for_PE.rar

    《ProcessExplorer_v15.12_Chs_for_PE.rar——Windows系统下的Java CPU使用率排查利器》 在日常的IT运维工作中,我们经常会遇到应用程序占用CPU资源过高导致系统性能下降的问题,尤其是对于运行Java代码的应用来说...

    重启 explorer 代码 C++ tray

    标题中的“重启 explorer 代码 C++ tray”指的是使用C++编程语言编写的一种代码,其功能是重新启动Windows操作系统中的Explorer进程。Explorer进程是Windows桌面环境的主要组成部分,它负责管理任务栏、桌面图标以及...

    java查询cpu内存工具

    #通过任务管理器查询pid #打印指定pid堆栈日志到指定文件 ...#在ProcessExplorer上查看进程cpu和内存使用情况,找到java进程点开可以看tid线程使用情况,通过tid可在线程日志中找到指定线程进行分析

    ProcessExplorer.zip

    包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32...

    Java Process类的详解及实例代码

    Java中的`Process`类是用于表示操作系统级别的进程的抽象类。这个类允许Java应用程序与操作系统交互,执行系统命令,例如启动新的进程、读取进程的输出流、写入进程的输入流以及控制进程的生命周期。在Java中,我们...

    dotnet6创建进程Process.Start设置UseShellExecute在Windows下对性能的影响

    在Windows操作系统中,`UseShellExecute`参数默认为`true`,这会使用操作系统的外壳程序(如Explorer.exe)来启动进程,允许支持诸如打开方式、拖放等高级功能。然而,这种启动方式可能会带来一定的性能开销,因为它...

    procexp64、进程管理工具

    ProcExp64是一款强大的进程管理工具,主要用于Windows操作系统中对系统进程进行深入的监控和管理。...在下载的压缩包中,"ProcessExplorer"很可能是ProcExp64的安装或执行文件,解压后可以直接运行来体验这些功能。

    进程的内存监视.rar

    5. **内存分析工具**:有许多工具可用于进程内存监视,例如Windows平台的Task Manager和Process Explorer,Linux下的top、htop和Valgrind等。这些工具能展示内存使用量、查看内存分配情况,甚至可以进行深度分析,如...

    太细了,堪称完美总结:“Java性能调优六大工具”之Windows工具(csdn)————程序.pdf

    另外,还有其他第三方工具如ProcessExplorer,虽然未在文中详细展开,但也是Windows平台上强大的进程管理和性能监控工具,能够提供更详细的信息和更高级的功能,对于Java开发者来说同样是个重要的辅助工具。...

    计算机中常用系统进程列表

    - **Jdbgmgr.exe**:Java调试器进程。 - **Lights.exe**:与调制解调器相关的进程。 - **lserver.exe** 和 **llssrv.exe**:与安全认证有关的进程。 - **MAPISp32.exe**:邮件和消息传递服务进程。 - **MSOffice.exe...

    JVM---jstack分析Java线程CPU占用,线程死锁的解决

    4. **分析线程状态**:使用文本编辑器或专用工具(如Windows下的ProcessExplorer)查看生成的`cpu.txt`文件,找到CPU占用高的线程,分析其状态和调用堆栈,定位到引起高CPU占用的方法。 ### 分析线程死锁 线程死锁...

    根据程序名字关闭系统中的程序

    5. 第三方工具:市场上也有一些第三方软件,如Process Explorer(Windows)等,它们提供了更强大的进程管理和控制功能,包括查找和结束进程。 在上述提到的压缩包文件"CloseExeByName"中,可能包含了一个实现这一...

    MyEclipse10使用教程 .doc

    1. 使用 Process Explorer 来查看并管理系统中的进程 Process Explorer 是一个功能强大的进程管理工具,可以帮助开发者查看和管理系统中的进程。 2. MyEclipse 10 的快捷键 MyEclipse 10 提供了许多快捷键,可以...

    CPU占用高

    有一些工具如Process Explorer(微软出品)或VisualVM(Java应用性能分析工具)能提供更详细的性能分析,帮助定位问题。 8. **资源调度优化**: 对于多核CPU,合理分配任务到不同核心可以有效减少单个核心的负载...

    loadrunner结果分析(内存、GC、was、sql等以及对应工具下载)借鉴.pdf

    可以使用工具(如 pslist 和 process explorer)查看 Java 进程的详细信息,找出占用 CPU 用户时间过多的线程。通过 jconsole 或生成 thread dump 文件,进一步分析 CPU 高负载的原因。 2. **垃圾收集(GC)调优**...

    注入 - 代码注入之远程线程篇 - C_C++_Python_Java - 博客园.pdf

    文中提到作者创建了一个名为RemoteThreadCode的项目,该项目能够实现在Explorer.exe进程中创建线程的功能,并在创建的线程中执行特定代码。通过远程线程注入,程序能够在不被目标进程察觉的情况下执行代码。 4. DLL...

    JRE精简攻略

    《JRE精简攻略》 在Java开发领域,JRE(Java Runtime Environment)是不可或缺的一部分,它为Java应用程序提供...同时,配合使用如`Process Explorer`这样的工具,我们可以更好地理解和优化JRE在实际运行中的表现。

    查看CUP、内存、硬盘使用情况

    而第三方工具如Process Explorer、Resource Monitor则提供了更详细的系统信息和分析能力。 5. **性能优化**:理解了CPU、内存和硬盘的使用情况后,我们可以针对性地进行系统优化。比如,关闭不必要的后台进程,调整...

    PID调试工具

    常见的PID调试工具有很多,比如Windows下的`Task Manager`、`Process Explorer`,Linux下的`top`、`ps`、`gdb`,以及跨平台的`Visual Studio Debugger`、`Java的jconsole`、`jvisualvm`等。选择合适的调试工具,结合...

Global site tag (gtag.js) - Google Analytics