jps命令(Java Virtual Machine Process Status Tool)
1.介绍
用来查看基于HotSpot JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。与unix上的ps类似,用来显示本地有权限的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。使用jps时,不需要传递进程号做为参数。
Jps也可以显示远程系统上的JAVA进程,这需要远程服务上开启了jstat服务,以及RMI注及服务,不过常用都是对本对的JAVA进程的查看。
2.命令格式
jps [ options ] [ hostid ]
3.常用参数说明
-m 输出传递给main方法的参数,如果是内嵌的JVM则输出为null。
-l 输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。
-v 输出传给JVM的参数。
4.使用示例
[root@diancai1 heapdump]# jps 25674 -- process information unavailable 7888 Bootstrap 7011 -- process information unavailable 4069 DiancaiMain 24044 Bootstrap 24356 Bootstrap 15639 Jps
[root@diancai1 heapdump]# jps -v 25674 -- process information unavailable 7888 Bootstrap -Djava.util.logging.config.file=/home/cms/tomcata/conf/logging.properties -Xms4096m -Xmx4096m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/java_dump/tomcata/ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/home/cms/tomcata/endorsed -Dcatalina.base=/home/cms/tomcata -Dcatalina.home=/home/cms/tomcata -Djava.io.tmpdir=/home/cms/tomcata/temp 7011 -- process information unavailable 4069 DiancaiMain 15737 Jps -Denv.class.path=.:/usr/java/lib/dt.jar:/usr/java/lib/tools.jar -Dapplication.home=/usr/java -Xms8m 24044 Bootstrap -Djava.util.logging.config.file=/home/cms/tomcatb/conf/logging.properties -Xms4096m -Xmx4096m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/java_dump/tomcatb/ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/home/cms/tomcatb/endorsed -Dcatalina.base=/home/cms/tomcatb -Dcatalina.home=/home/cms/tomcatb -Djava.io.tmpdir=/home/cms/tomcatb/temp 24356 Bootstrap -Djava.util.logging.config.file=/home/cms/tomcatc/conf/logging.properties -Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/java_dump/tomcatc/ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/home/cms/tomcatc/endorsed -Dcatalina.base=/home/cms/tomcatc -Dcatalina.home=/home/cms/tomcatc -Djava.io.tmpdir=/home/cms/tomcatc/temp
[root@diancai1 heapdump]# jps -l 25674 -- process information unavailable 7888 org.apache.catalina.startup.Bootstrap 7011 -- process information unavailable 15793 sun.tools.jps.Jps 4069 com.diancai.main.DiancaiMain 24044 org.apache.catalina.startup.Bootstrap 24356 org.apache.catalina.startup.Bootstrap
jstack命令(Java Stack Trace)
1.介绍
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是非常有用的。
2.命令格式
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服务
2) 基本参数:
-F当’jstack [-l] pid’没有相应的时候强制打印栈信息
-l长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.
-m打印java和native c/c++框架的所有栈信息.
-h | -help打印帮助信息
pid 需要被打印配置信息的java进程id,可以用jps查询.
4.使用示例:
[root@diancai1 heapdump]# jstack -l 7888 .... "http-8080-2" daemon prio=10 tid=0x0000000053d5f000 nid=0x1f0d in Object.wait() [0x0000000044a00000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) - locked <0x00002aaabe442260> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) at java.lang.Thread.run(Thread.java:619) Locked ownable synchronizers: - None "http-8080-1" daemon prio=10 tid=0x0000000053d5d000 nid=0x1f0c in Object.wait() [0x0000000041b10000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:458) - locked <0x00002aaabe43e9c0> (a org.apache.tomcat.util.net.JIoEndpoint$Worker) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:484) at java.lang.Thread.run(Thread.java:619) Locked ownable synchronizers: - None "http-8080-Acceptor-0" daemon prio=10 tid=0x00002aabc860b000 nid=0x1f0b runnable [0x0000000041a0f000] java.lang.Thread.State: RUNNABLE at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390) - locked <0x00002aaabe484e70> (a java.net.SocksSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:453) at java.net.ServerSocket.accept(ServerSocket.java:421) at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:352) at java.lang.Thread.run(Thread.java:619) Locked ownable synchronizers: - None "ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon prio=10 tid=0x00002aabc8879800 nid=0x1f0a waiting on condition [0x0000000040bda000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1631) at java.lang.Thread.run(Thread.java:619) Locked ownable synchronizers: - None "Memcached IO over {MemcachedConnection to /172.16.3.2:11211}" prio=10 tid=0x00002aabc895a800 nid=0x1f09 runnable [0x000000004190e000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:215) at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69) - locked <0x00002aaabe427390> (a sun.nio.ch.Util$1) - locked <0x00002aaabe4273a8> (a java.util.Collections$UnmodifiableSet) - locked <0x00002aaabe427318> (a sun.nio.ch.EPollSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80) at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:217) at net.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:833) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#19" daemon prio=10 tid=0x00002aabc891d800 nid=0x1f08 in Object.wait() [0x00000000448ff000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#18" daemon prio=10 tid=0x00002aabc891b800 nid=0x1f07 in Object.wait() [0x00000000447fe000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#17" daemon prio=10 tid=0x00002aabc8919800 nid=0x1f06 in Object.wait() [0x00000000446fd000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#16" daemon prio=10 tid=0x00002aabc8917800 nid=0x1f05 in Object.wait() [0x00000000445fc000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#15" daemon prio=10 tid=0x00002aabc88be800 nid=0x1f04 in Object.wait() [0x00000000444fb000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#14" daemon prio=10 tid=0x00002aabc88bc800 nid=0x1f03 in Object.wait() [0x00000000443fa000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#13" daemon prio=10 tid=0x00002aabc88ba800 nid=0x1f02 in Object.wait() [0x00000000442f9000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#12" daemon prio=10 tid=0x00002aabc88b8800 nid=0x1f01 in Object.wait() [0x00000000441f8000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#11" daemon prio=10 tid=0x00002aabc88b6800 nid=0x1f00 in Object.wait() [0x00000000440f7000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#10" daemon prio=10 tid=0x00002aabc88b4800 nid=0x1eff in Object.wait() [0x0000000043ff6000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#9" daemon prio=10 tid=0x00002aabc84de800 nid=0x1efe in Object.wait() [0x0000000043ef5000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#8" daemon prio=10 tid=0x00002aabc837f800 nid=0x1efd in Object.wait() [0x0000000043df4000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#7" daemon prio=10 tid=0x00002aabc84a6800 nid=0x1efc in Object.wait() [0x0000000043cf3000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#6" daemon prio=10 tid=0x00002aabc875c800 nid=0x1efb in Object.wait() [0x0000000043bf2000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#5" daemon prio=10 tid=0x00002aabc88cb800 nid=0x1efa in Object.wait() [0x0000000043af1000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#4" daemon prio=10 tid=0x00002aabc8905000 nid=0x1ef9 in Object.wait() [0x00000000439f0000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3" daemon prio=10 tid=0x00002aabc878b800 nid=0x1ef8 in Object.wait() [0x00000000438ef000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" daemon prio=10 tid=0x00002aabc88ed000 nid=0x1ef7 in Object.wait() [0x00000000437ee000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1" daemon prio=10 tid=0x000000005590b000 nid=0x1ef6 in Object.wait() [0x00000000436ed000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0" daemon prio=10 tid=0x0000000054356800 nid=0x1ef5 in Object.wait() [0x00000000435ec000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:534) - locked <0x00002aaabe452d10> (a com.mchange.v2.async.ThreadPoolAsynchronousRunner) Locked ownable synchronizers: - None "Timer-0" daemon prio=10 tid=0x0000000053a64800 nid=0x1ef4 in Object.wait() [0x00000000434eb000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.util.TimerThread.mainLoop(Timer.java:509) - locked <0x00002aaabe47a160> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_QuartzSchedulerThread" prio=10 tid=0x00002aabc8398000 nid=0x1ef3 in Object.wait() [0x00000000433ea000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:297) - locked <0x00002aaabe4305a8> (a java.lang.Object) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-10" prio=10 tid=0x00002aabc86ac800 nid=0x1ef2 in Object.wait() [0x00000000432e9000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - locked <0x00002aaabe5024c0> (a org.quartz.simpl.SimpleThreadPool$WorkerThread) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-9" prio=10 tid=0x00002aabc809a800 nid=0x1ef1 in Object.wait() [0x00000000431e8000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - locked <0x00002aaabe458048> (a org.quartz.simpl.SimpleThreadPool$WorkerThread) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-8" prio=10 tid=0x00002aabc86fb000 nid=0x1ef0 in Object.wait() [0x00000000430e7000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - locked <0x00002aaabe458520> (a org.quartz.simpl.SimpleThreadPool$WorkerThread) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-7" prio=10 tid=0x00002aabc86fa800 nid=0x1eef in Object.wait() [0x0000000042fe6000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - locked <0x00002aaabe504a58> (a org.quartz.simpl.SimpleThreadPool$WorkerThread) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-6" prio=10 tid=0x00002aabc83a2800 nid=0x1eee in Object.wait() [0x0000000042ee5000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - locked <0x00002aaabe504558> (a org.quartz.simpl.SimpleThreadPool$WorkerThread) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-5" prio=10 tid=0x00002aabc84cd000 nid=0x1eed in Object.wait() [0x0000000042de4000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - locked <0x00002aaabe504058> (a org.quartz.simpl.SimpleThreadPool$WorkerThread) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4" prio=10 tid=0x00002aabc84f5800 nid=0x1eec in Object.wait() [0x0000000042ce3000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - locked <0x00002aaabe503b58> (a org.quartz.simpl.SimpleThreadPool$WorkerThread) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-3" prio=10 tid=0x00002aabc8220800 nid=0x1eeb in Object.wait() [0x0000000042be2000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - locked <0x00002aaabe503658> (a org.quartz.simpl.SimpleThreadPool$WorkerThread) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2" prio=10 tid=0x00002aabc8799000 nid=0x1eea in Object.wait() [0x0000000042ae1000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - locked <0x00002aaabe503158> (a org.quartz.simpl.SimpleThreadPool$WorkerThread) Locked ownable synchronizers: - None "org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1" prio=10 tid=0x00002aabc8683800 nid=0x1ee9 in Object.wait() [0x00000000429e0000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - locked <0x00002aaabe502a78> (a org.quartz.simpl.SimpleThreadPool$WorkerThread) Locked ownable synchronizers: - None "Memcached IO over {MemcachedConnection to /172.16.3.2:11211}" prio=10 tid=0x00002aabc880b000 nid=0x1ee8 runnable [0x000000004162c000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:215) at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69) - locked <0x00002aaabe458bd0> (a sun.nio.ch.Util$1) - locked <0x00002aaabe458be8> (a java.util.Collections$UnmodifiableSet) - locked <0x00002aaabe458b58> (a sun.nio.ch.EPollSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80) at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:217) at net.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:833) Locked ownable synchronizers: - None "GC Daemon" daemon prio=10 tid=0x00002aabc8001800 nid=0x1ee7 in Object.wait() [0x0000000040209000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at sun.misc.GC$Daemon.run(GC.java:100) - locked <0x00002aaabe2101d0> (a sun.misc.GC$LatencyLock) Locked ownable synchronizers: - None "Low Memory Detector" daemon prio=10 tid=0x00002aabc0003800 nid=0x1ee5 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers: - None "CompilerThread1" daemon prio=10 tid=0x0000000053681000 nid=0x1ee4 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers: - None "CompilerThread0" daemon prio=10 tid=0x000000005367e800 nid=0x1ee3 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers: - None "Signal Dispatcher" daemon prio=10 tid=0x000000005367c800 nid=0x1ee2 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE Locked ownable synchronizers: - None "Finalizer" daemon prio=10 tid=0x000000005365f800 nid=0x1ee1 in Object.wait() [0x0000000041329000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x00002aaabe210ac0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) Locked ownable synchronizers: - None "Reference Handler" daemon prio=10 tid=0x0000000053658800 nid=0x1ee0 in Object.wait() [0x0000000041228000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) - locked <0x00002aaabe2101b0> (a java.lang.ref.Reference$Lock) Locked ownable synchronizers: - None "main" prio=10 tid=0x00000000535e4000 nid=0x1ed1 runnable [0x00000000403f4000] java.lang.Thread.State: RUNNABLE at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390) - locked <0x00002aaabe6469c8> (a java.net.SocksSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:453) at java.net.ServerSocket.accept(ServerSocket.java:421) at org.apache.catalina.core.StandardServer.await(StandardServer.java:431) at org.apache.catalina.startup.Catalina.await(Catalina.java:676) at org.apache.catalina.startup.Catalina.start(Catalina.java:628) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Locked ownable synchronizers: - None "VM Thread" prio=10 tid=0x0000000053651800 nid=0x1edf runnable "GC task thread#0 (ParallelGC)" prio=10 tid=0x00000000535ee000 nid=0x1ed2 runnable "GC task thread#1 (ParallelGC)" prio=10 tid=0x00000000535f0000 nid=0x1ed3 runnable "GC task thread#2 (ParallelGC)" prio=10 tid=0x00000000535f2000 nid=0x1ed4 runnable "GC task thread#3 (ParallelGC)" prio=10 tid=0x00000000535f3800 nid=0x1ed5 runnable "GC task thread#4 (ParallelGC)" prio=10 tid=0x00000000535f5800 nid=0x1ed6 runnable "GC task thread#5 (ParallelGC)" prio=10 tid=0x00000000535f7800 nid=0x1ed7 runnable "GC task thread#6 (ParallelGC)" prio=10 tid=0x00000000535f9000 nid=0x1ed8 runnable "GC task thread#7 (ParallelGC)" prio=10 tid=0x00000000535fb000 nid=0x1ed9 runnable "GC task thread#8 (ParallelGC)" prio=10 tid=0x00000000535fd000 nid=0x1eda runnable "GC task thread#9 (ParallelGC)" prio=10 tid=0x00000000535fe800 nid=0x1edb runnable "GC task thread#10 (ParallelGC)" prio=10 tid=0x0000000053600800 nid=0x1edc runnable "GC task thread#11 (ParallelGC)" prio=10 tid=0x0000000053602800 nid=0x1edd runnable "GC task thread#12 (ParallelGC)" prio=10 tid=0x0000000053604000 nid=0x1ede runnable "VM Periodic Task Thread" prio=10 tid=0x00002aabc0006800 nid=0x1ee6 waiting on condition JNI global references: 851
相关推荐
除了Java平台提供的工具外,还可以使用操作系统自带的工具来辅助调试工作。例如,在Windows上可以使用DbgView来捕获应用程序的日志输出。 #### 十三、自定义诊断工具 针对特定场景,开发者可能需要编写自定义的诊断...
jstack是Java虚拟机自带的堆栈跟踪工具,它用于生成Java虚拟机当前时刻的线程快照。线程快照显示了Java虚拟机内每条线程正在执行的方法堆栈,这对于定位线程长时间停顿的原因非常有帮助。线程快照主要用来排查问题,...
- `jconsole`和`jvisualvm`: 这两个是图形界面的Java性能监视和诊断工具,提供了丰富的功能,如实时监控CPU、内存使用情况,查看线程、类加载器、垃圾收集等信息,还可以进行内存快照分析。 在多线程环境下,理解并...
- **功能介绍**:`jstack`工具可以打印出Java进程中每个线程的堆栈跟踪信息。 - **使用方法**: - `jstack <pid>`:打印出Java进程中每个线程的堆栈跟踪信息。 ##### 7. VisualVM:多合一故障处理工具 - **功能...
内容概要:本文主要探讨了SNS单模无芯光纤的仿真分析及其在通信和传感领域的应用潜力。首先介绍了模间干涉仿真的重要性,利用Rsoft beamprop模块模拟不同模式光在光纤中的传播情况,进而分析光纤的传输性能和模式特性。接着讨论了光纤传输特性的仿真,包括损耗、色散和模式耦合等参数的评估。随后,文章分析了光纤的结构特性,如折射率分布、包层和纤芯直径对性能的影响,并探讨了镀膜技术对光纤性能的提升作用。最后,进行了变形仿真分析,研究外部因素导致的光纤变形对其性能的影响。通过这些分析,为优化光纤设计提供了理论依据。 适合人群:从事光纤通信、光学工程及相关领域的研究人员和技术人员。 使用场景及目标:适用于需要深入了解SNS单模无芯光纤特性和优化设计的研究项目,旨在提高光纤性能并拓展其应用场景。 其他说明:本文不仅提供了详细的仿真方法和技术细节,还对未来的发展方向进行了展望,强调了SNS单模无芯光纤在未来通信和传感领域的重要地位。
发那科USM通讯程序socket-set
嵌入式八股文面试题库资料知识宝典-WIFI.zip
源码与image
内容概要:本文详细探讨了物流行业中路径规划与车辆路径优化(VRP)的问题,特别是针对冷链物流、带时间窗的车辆路径优化(VRPTW)、考虑充电桩的车辆路径优化(EVRP)以及多配送中心情况下的路径优化。文中不仅介绍了遗传算法、蚁群算法、粒子群算法等多种优化算法的理论背景,还提供了完整的MATLAB代码及注释,帮助读者理解这些算法的具体实现。此外,文章还讨论了如何通过MATLAB处理大量数据和复杂计算,以得出最优的路径方案。 适合人群:从事物流行业的研究人员和技术人员,尤其是对路径优化感兴趣的开发者和工程师。 使用场景及目标:适用于需要优化车辆路径的企业和个人,旨在提高配送效率、降低成本、确保按时交付货物。通过学习本文提供的算法和代码,读者可以在实际工作中应用这些优化方法,提升物流系统的性能。 其他说明:为了更好地理解和应用这些算法,建议读者参考相关文献和教程进行深入学习。同时,实际应用中还需根据具体情况进行参数调整和优化。
嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_8.doc.zip
内容概要:本文介绍了基于灰狼优化算法(GWO)的城市路径规划优化问题(TSP),并通过Matlab实现了该算法。文章详细解释了GWO算法的工作原理,包括寻找猎物、围捕猎物和攻击猎物三个阶段,并提供了具体的代码示例。通过不断迭代优化路径,最终得到最优的城市路径规划方案。与传统TSP求解方法相比,GWO算法具有更好的全局搜索能力和较快的收敛速度,适用于复杂的城市环境。尽管如此,算法在面对大量城市节点时仍面临运算时间和参数设置的挑战。 适合人群:对路径规划、优化算法感兴趣的科研人员、学生以及从事交通规划的专业人士。 使用场景及目标:①研究和开发高效的路径规划算法;②优化城市交通系统,提升出行效率;③探索人工智能在交通领域的应用。 其他说明:文中提到的代码可以作为学习和研究的基础,但实际应用中需要根据具体情况调整算法参数和优化策略。
嵌入式八股文面试题库资料知识宝典-Intel3.zip
嵌入式八股文面试题库资料知识宝典-2019京东C++.zip
嵌入式八股文面试题库资料知识宝典-北京光桥科技有限公司面试题.zip
内容概要:本文详细探讨了十字形声子晶体的能带结构和传输特性。首先介绍了声子晶体作为新型周期性结构在物理学和工程学中的重要地位,特别是十字形声子晶体的独特结构特点。接着从散射体的形状、大小、排列周期等方面分析了其对能带结构的影响,并通过理论计算和仿真获得了能带图。随后讨论了十字形声子晶体的传输特性,即它对声波的调控能力,包括传播速度、模式和能量分布的变化。最后通过大量实验和仿真验证了理论分析的正确性,并得出结论指出散射体的材料、形状和排列方式对其性能有重大影响。 适合人群:从事物理学、材料科学、声学等相关领域的研究人员和技术人员。 使用场景及目标:适用于希望深入了解声子晶体尤其是十字形声子晶体能带与传输特性的科研工作者,旨在为相关领域的创新和发展提供理论支持和技术指导。 其他说明:文中还对未来的研究方向进行了展望,强调了声子晶体在未来多个领域的潜在应用价值。
嵌入式系统开发_USB主机控制器_Arduino兼容开源硬件_基于Mega32U4和MAX3421E芯片的USB设备扩展开发板_支持多种USB外设接入与控制的通用型嵌入式开发平台_
e2b8a-main.zip
少儿编程scratch项目源代码文件案例素材-火柴人跑酷(2).zip
内容概要:本文详细介绍了HarmonyOS分布式远程启动子系统,该系统作为HarmonyOS的重要组成部分,旨在打破设备间的界限,实现跨设备无缝启动、智能设备选择和数据同步与连续性等功能。通过分布式软总线和分布式数据管理技术,它能够快速、稳定地实现设备间的通信和数据同步,为用户提供便捷的操作体验。文章还探讨了该系统在智能家居、智能办公和教育等领域的应用场景,展示了其在提升效率和用户体验方面的巨大潜力。最后,文章展望了该系统的未来发展,强调其在技术优化和应用场景拓展上的无限可能性。 适合人群:对HarmonyOS及其分布式技术感兴趣的用户、开发者和行业从业者。 使用场景及目标:①理解HarmonyOS分布式远程启动子系统的工作原理和技术细节;②探索该系统在智能家居、智能办公和教育等领域的具体应用场景;③了解该系统为开发者提供的开发优势和实践要点。 其他说明:本文不仅介绍了HarmonyOS分布式远程启动子系统的核心技术和应用场景,还展望了其未来的发展方向。通过阅读本文,用户可以全面了解该系统如何通过技术创新提升设备间的协同能力和用户体验,为智能生活带来新的变革。
嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_1.zip