【java】jstack
介绍
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:
jstack [-l] pid
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。
命令格式
jstack [ option ] pid
jstack [ option ] executable core
jstack [ option ] [server-id@]remote-hostname-or-IP
常用参数说明
3.1 options:
executable Java executable from which the core dump was produced.
(可能是产生core dump的java可执行程序)
core 将被打印信息的core dump文件
remote-hostname-or-IP 远程debug服务的主机名或ip
server-id 唯一id,假如一台主机上多个远程debug服务
3.2 基本参数:
-F当’jstack [-l] pid’没有相应的时候强制打印栈信息
-l长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.
-m打印java和native c/c++框架的所有栈信息.
-h | -help打印帮助信息
pid 需要被打印配置信息的java进程id,可以用jps查询.
示例
打开windows管理器,找到java程序的pid
如上图,eclipse中的javaw的pid为10036,打开cmd,输入jstack 10036shell
2017-01-07 09:40:29
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.66-b18 mixed mode):
"Worker-277" #2969 prio=5 os_prio=0 tid=0x0000000026d3b000 nid=0x54a8 in Object.wait() [0x0000000068d6f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
- locked <0x00000000c06def60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:52)
"Worker-275" #2938 prio=5 os_prio=0 tid=0x0000000017b18800 nid=0x274c runnable [0x00000000656ee000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
- locked <0x00000000eab9fc58> (a java.net.DualStackPlainSocketImpl)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:74)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at com.zeroturnaround.eclipse.optimizer.plugin.util.ZtHttpClientImpl.performRequest(ZtHttpClientImpl.java:227)
at com.zeroturnaround.eclipse.optimizer.plugin.util.ZtHttpClientImpl.performRequest(ZtHttpClientImpl.java:94)
at com.zeroturnaround.eclipse.optimizer.plugin.util.VersionsChecker.loadVersions(VersionsChecker.java:89)
at com.zeroturnaround.eclipse.optimizer.plugin.util.VersionsChecker.reloadVersions(VersionsChecker.java:79)
- locked <0x00000000c34def20> (a com.zeroturnaround.eclipse.optimizer.plugin.util.VersionsChecker)
at com.zeroturnaround.eclipse.optimizer.plugin.util.VersionsChecker.loadVersions(VersionsChecker.java:70)
- locked <0x00000000c34def20> (a com.zeroturnaround.eclipse.optimizer.plugin.util.VersionsChecker)
at com.zeroturnaround.eclipse.optimizer.plugin.Startup$4.run(Startup.java:131)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
"Worker-272" #2930 prio=5 os_prio=0 tid=0x0000000017b15800 nid=0x4da4 in Object.wait() [0x0000000064dee000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:188)
- locked <0x00000000c06def60> (a org.eclipse.core.internal.jobs.WorkerPool)
at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:220)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:52)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #2913 daemon prio=1 os_prio=-2 tid=0x0000000023642000 nid=0x47e4 in Object.wait() [0x00000000638ee000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000ca878a38> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #2352 daemon prio=1 os_prio=-2 tid=0x0000000026d37800 nid=0x4620 in Object.wait() [0x000000005da3f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000ca018cf8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #2311 daemon prio=1 os_prio=-2 tid=0x0000000026d3f800 nid=0x4628 in Object.wait() [0x000000005553e000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c9e002b8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #1245 daemon prio=1 os_prio=-2 tid=0x0000000026d40800 nid=0x41d4 in Object.wait() [0x000000005ba3f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c8a3cbe8> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #1160 daemon prio=1 os_prio=-2 tid=0x0000000028643800 nid=0x2988 in Object.wait() [0x000000005583f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c8228278> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #1159 daemon prio=1 os_prio=-2 tid=0x0000000028648000 nid=0x2670 in Object.wait() [0x000000005573f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c825ba48> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #1085 daemon prio=1 os_prio=-2 tid=0x0000000026d36800 nid=0x13e4 in Object.wait() [0x000000004625f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c7898c28> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #1084 daemon prio=1 os_prio=-2 tid=0x000000002364c000 nid=0x48f8 in Object.wait() [0x000000004615f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c78e0888> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #1078 daemon prio=1 os_prio=-2 tid=0x0000000017b0d000 nid=0x2fdc in Object.wait() [0x000000000010f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c7a58418> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #1077 daemon prio=1 os_prio=-2 tid=0x0000000023644800 nid=0x3f44 in Object.wait() [0x000000007ff1f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c790de48> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #952 daemon prio=1 os_prio=-2 tid=0x0000000023648000 nid=0x226c in Object.wait() [0x000000007831f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c71992e0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #950 daemon prio=1 os_prio=-2 tid=0x0000000023647800 nid=0x46c8 in Object.wait() [0x000000007811f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c737b340> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #948 daemon prio=1 os_prio=-2 tid=0x0000000023640000 nid=0x3928 in Object.wait() [0x0000000077f1f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c741b4b0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #944 daemon prio=1 os_prio=-2 tid=0x0000000023646000 nid=0x3cd8 in Object.wait() [0x0000000077b1f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c72c6570> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #941 daemon prio=1 os_prio=-2 tid=0x0000000023645000 nid=0x1c8c in Object.wait() [0x000000007781f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c7416bd0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #932 daemon prio=1 os_prio=-2 tid=0x000000002363e800 nid=0x14f8 in Object.wait() [0x0000000076f1f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c6fe12c0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #911 daemon prio=1 os_prio=-2 tid=0x0000000018642000 nid=0x4ad0 in Object.wait() [0x000000007591f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c6b6c0e0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #908 daemon prio=1 os_prio=-2 tid=0x0000000018640800 nid=0x3dcc in Object.wait() [0x000000007561f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c6cc04d8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #905 daemon prio=1 os_prio=-2 tid=0x0000000018646000 nid=0x4970 in Object.wait() [0x000000007521f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c6d26018> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #901 daemon prio=1 os_prio=-2 tid=0x0000000017b12800 nid=0x2b00 in Object.wait() [0x0000000074e1f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c6d57d28> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #893 daemon prio=1 os_prio=-2 tid=0x000000001964a000 nid=0x4a68 in Object.wait() [0x000000007451f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c67dc0f0> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #890 daemon prio=1 os_prio=-2 tid=0x0000000017b17000 nid=0x5188 in Object.wait() [0x000000007421f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c68139b8> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #885 daemon prio=1 os_prio=-2 tid=0x0000000017b9e800 nid=0x3170 in Object.wait() [0x0000000073d1f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c6590b88> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #880 daemon prio=1 os_prio=-2 tid=0x000000001964d800 nid=0x31f8 in Object.wait() [0x000000007371f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c668bb88> (a java.util.Collections$SynchronizedRandomAccessList)
"org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor" #874 daemon prio=1 os_prio=-2 tid=0x0000000017b11800 nid=0xf68 in Object.wait() [0x000000007321e000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor$BackgroundThread.run(DirtyRegionProcessor.java:667)
- locked <0x00000000c638f240> (a java.util.Collections$SynchronizedRandomAccessList)
"Keep-Alive-SocketCleaner" #665 daemon prio=8 os_prio=1 tid=0x000000001964d000 nid=0x52c4 in Object.wait() [0x0000000063bee000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at sun.net.www.http.KeepAliveStreamCleaner.run(Unknown Source)
- locked <0x00000000c5efcf38> (a sun.net.www.http.KeepAliveStreamCleaner)
at java.lang.Thread.run(Unknown Source)
"Thread-350" #596 prio=6 os_prio=0 tid=0x00000000253ef000 nid=0x44b4 runnable [0x000000005f6ef000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x00000000c5c12ba8> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at runjettyrun.Plugin$1.run(Plugin.java:202)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #584 daemon prio=1 os_prio=-2 tid=0x0000000017b13000 nid=0x8c0 in Object.wait() [0x000000005eaef000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c5835288> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #206 daemon prio=1 os_prio=-2 tid=0x0000000017b9d000 nid=0x4898 in Object.wait() [0x0000000044dde000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c4eaf620> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Recommenders-Timeout-Manager" #158 prio=5 os_prio=0 tid=0x00000000253e5800 nid=0xefc waiting on condition [0x0000000041bde000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c4b641c0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Timer-9" #154 daemon prio=6 os_prio=0 tid=0x00000000253e8800 nid=0x26e8 in Object.wait() [0x00000000416df000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.util.TimerThread.mainLoop(Unknown Source)
- locked <0x00000000c4b062c0> (a java.util.TaskQueue)
at java.util.TimerThread.run(Unknown Source)
"com.google.inject.internal.util.$Finalizer" #151 daemon prio=6 os_prio=0 tid=0x00000000253e4800 nid=0x2dc0 in Object.wait() [0x00000000413df000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000000c4af89d8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at com.google.inject.internal.util.$Finalizer.run(Finalizer.java:114)
"[ThreadPool Manager] - Idle Thread" #89 daemon prio=5 os_prio=0 tid=0x0000000017b9a000 nid=0x4d94 in Object.wait() [0x0000000035edf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor.run(Executor.java:106)
- locked <0x00000000c38fa420> (a org.eclipse.equinox.internal.util.impl.tpt.threadpool.Executor)
"pool-7-thread-1" #85 prio=5 os_prio=0 tid=0x0000000017b9b800 nid=0x18c4 waiting on condition [0x0000000034b0f000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c3cf6b58> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #83 daemon prio=1 os_prio=-2 tid=0x0000000017ba4800 nid=0x51b8 in Object.wait() [0x0000000034a0e000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c3923b68> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"Timer-8" #80 daemon prio=5 os_prio=0 tid=0x0000000017b9d800 nid=0x3a80 in Object.wait() [0x000000003460f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.util.TimerThread.mainLoop(Unknown Source)
- locked <0x00000000c3a0bd68> (a java.util.TaskQueue)
at java.util.TimerThread.run(Unknown Source)
"rebel.lwatch" #74 daemon prio=5 os_prio=0 tid=0x0000000017b9f000 nid=0x4c50 in Object.wait() [0x0000000032fff000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.zeroturnaround.jrebel.client.licensing.Watcher$1.run(Watcher.java:79)
- locked <0x00000000c2c333b8> (a org.zeroturnaround.jrebel.client.licensing.Watcher)
at java.lang.Thread.run(Unknown Source)
"JavaScript indexing" #63 daemon prio=4 os_prio=-1 tid=0x00000000253ed800 nid=0x51ac in Object.wait() [0x00000000324ff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.wst.jsdt.internal.core.search.processing.JobManager.run(JobManager.java:370)
- locked <0x00000000c2e93880> (a org.eclipse.wst.jsdt.internal.core.search.indexing.IndexManager)
at java.lang.Thread.run(Unknown Source)
"Provisioning Event Dispatcher" #58 daemon prio=5 os_prio=0 tid=0x00000000253e6000 nid=0x45a4 in Object.wait() [0x0000000031cff000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
- locked <0x00000000c307c290> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
"pool-5-thread-1" #56 prio=5 os_prio=0 tid=0x00000000253ea000 nid=0x6f8 runnable [0x0000000031bfe000]
java.lang.Thread.State: RUNNABLE
at java.net.DualStackPlainSocketImpl.accept0(Native Method)
at java.net.DualStackPlainSocketImpl.socketAccept(Unknown Source)
at java.net.AbstractPlainSocketImpl.accept(Unknown Source)
at java.net.PlainSocketImpl.accept(Unknown Source)
- locked <0x00000000c2a2e4c8> (a java.net.SocksSocketImpl)
at java.net.ServerSocket.implAccept(Unknown Source)
at java.net.ServerSocket.accept(Unknown Source)
at org.zeroturnaround.jrebel.ide.common.notifications.NotificationServer$1.run(NotificationServer.java:129)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"JRebel Statistics Watcher" #55 prio=5 os_prio=0 tid=0x00000000253ea800 nid=0x3a94 waiting on condition [0x00000000316ff000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.zeroturnaround.eclipse.notifications.RebelStatsFileWatcher.run(RebelStatsFileWatcher.java:54)
at java.lang.Thread.run(Unknown Source)
"Thread-9" #49 prio=5 os_prio=0 tid=0x00000000253e7000 nid=0x3ba0 waiting on condition [0x00000000300ef000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker$UpdateCheckThread.run(UpdateChecker.java:68)
"org.eclipse.jdt.internal.ui.text.JavaReconciler" #32 daemon prio=1 os_prio=-2 tid=0x00000000199df000 nid=0x4710 in Object.wait() [0x00000000268bf000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
- locked <0x00000000c22b70b0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)
"EventAdmin Async Event Dispatcher Thread" #31 daemon prio=6 os_prio=0 tid=0x00000000199dd000 nid=0x5318 in Object.wait() [0x00000000245bf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
- locked <0x00000000c25cfa10> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
"Java indexing" #26 daemon prio=4 os_prio=-1 tid=0x00000000199e2000 nid=0x2e54 in Object.wait() [0x000000002216e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:382)
- locked <0x00000000c170cfd0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager)
at java.lang.Thread.run(Unknown Source)
"Bundle File Closer" #25 daemon prio=6 os_prio=0 tid=0x00000000199e0000 nid=0x32f8 in Object.wait() [0x0000000021c6f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
- locked <0x00000000c1c857c0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
"EMF Reference Cleaner" #22 daemon prio=6 os_prio=0 tid=0x000000001898b000 nid=0x3718 in Object.wait() [0x000000002031e000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000000c0d00060> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at org.eclipse.emf.common.util.CommonUtil$1ReferenceClearingQueuePollingThread.run(CommonUtil.java:70)
"Worker-JM" #17 prio=5 os_prio=0 tid=0x0000000017e50000 nid=0xd88 in Object.wait() [0x000000001f80f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:59)
- locked <0x00000000c06df238> (a java.util.ArrayList)
"[Timer] - Main Queue Handler" #16 daemon prio=5 os_prio=0 tid=0x00000000188d8000 nid=0x377c in Object.wait() [0x000000001f70f000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at org.eclipse.equinox.internal.util.impl.tpt.timer.TimerImpl.run(TimerImpl.java:141)
- locked <0x00000000c0cb0370> (a java.lang.Object)
at java.lang.Thread.run(Unknown Source)
"Start Level: Equinox Container: 607454e3-e7d2-0016-1614-a06fb5b7a3d3" #14 daemon prio=5 os_prio=0 tid=0x0000000019705000 nid=0x3828 in Object.wait() [0x000000001a65f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000c0305d90> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
- locked <0x00000000c0305d90> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
"Framework Event Dispatcher: Equinox Container: 607454e3-e7d2-0016-1614-a06fb5b7a3d3" #13 daemon prio=5 os_prio=0 tid=0x0000000019711800 nid=0x46fc in Object.wait() [0x000000001a55f000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
- locked <0x00000000c0d18040> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
"Active Thread: Equinox Container: 607454e3-e7d2-0016-1614-a06fb5b7a3d3" #11 prio=5 os_prio=0 tid=0x000000001861e800 nid=0x4210 waiting on condition [0x000000001a45e000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000000c0d18880> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
"Service Thread" #9 daemon prio=9 os_prio=0 tid=0x00000000169e2000 nid=0x4a74 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x0000000016963000 nid=0x38f8 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x0000000016956000 nid=0x1b24 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x0000000016955000 nid=0x1da0 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x00000000153ba000 nid=0x1d90 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x00000000153b9800 nid=0x3388 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x0000000002c87000 nid=0x38b0 in Object.wait() [0x00000000166bf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
- locked <0x00000000c11e1c00> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(Unknown Source)
at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)
"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x0000000002c7e000 nid=0x1114 in Object.wait() [0x00000000165bf000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Unknown Source)
at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
- locked <0x00000000c11e1c40> (a java.lang.ref.Reference$Lock)
"main" #1 prio=6 os_prio=0 tid=0x0000000002b92800 nid=0x2998 runnable [0x00000000029fe000]
java.lang.Thread.State: RUNNABLE
at org.eclipse.swt.internal.win32.OS.WaitMessage(Native Method)
at org.eclipse.swt.widgets.Display.sleep(Display.java:4728)
at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:368)
at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.eventLoopIdle(IDEWorkbenchAdvisor.java:858)
at org.eclipse.ui.internal.Workbench$3.eventLoopIdle(Workbench.java:517)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1132)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
at org.eclipse.equinox.launcher.Main.main(Main.java:1488)
"VM Thread" os_prio=2 tid=0x0000000015328000 nid=0x53f8 runnable
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x0000000002ba8000 nid=0x4e20 runnable
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x0000000002ba9800 nid=0xa3c runnable
"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x0000000002bab000 nid=0x54c runnable
"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000002bad800 nid=0x501c runnable
"VM Periodic Task Thread" os_prio=2 tid=0x0000000016a0c000 nid=0x424 waiting on condition
JNI global references: 478
如果输出到文件,在windows下可以增加>>result.txt,即可输出到指定文件
以上是 【java】jstack 的全部内容, 来源链接: utcz.com/z/393324.html