zoukankan      html  css  js  c++  java
  • 作业7:常用java命令(一)

    一、Javac(java compiler)

    1、功能:javac是一种前端编译器,负责将源代码转换为字节码。

    2、例子

    (1)代码

    public class TestJavac {
        static class Person{
            private String name;
            private Integer age;
            public Person() {
            }
    
            public Person(String name, Integer age) {
                this.name = name;
                this.age = age;
            }
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
    
            public Integer getAge() {
                return age;
            }
    
            public void setAge(Integer age) {
                this.age = age;
            }
        }
    
        public static void main(String[] args) {
            System.out.println("Test Javac");
            Person javac = new Person("Javac", 14);
            System.out.println(javac.getName());
            System.out.println(javac.getAge());
        }
    }
    

    (2)执行javac命令

    C:UsersHBKJDesktopTestJavac>javac TestJavac.java
    C:UsersHBKJDesktopTestJavac>dir
        C:UsersHBKJDesktopTestJavac 的目录
        2018/07/21  12:30    <DIR>          .
        2018/07/21  12:30    <DIR>          ..
        2018/07/21  12:26               774 TestJavac$Person.class // 内部类
        2018/07/21  12:26               783 TestJavac.class
        2018/07/21  12:26               842 TestJavac.java
                       3 个文件          2,399 字节
                       2 个目录 13,931,593,728 可用字节
    

    二、javap

    1、功能:javap是Java字节码文件分解器,能够反编译javac生成的字节码;也能够查看java编译器生成的字节码,用于分解class文件。

    2、例子

    (1)命令:javap -p

    C:UsersHBKJDesktopTestJavac>javap -p TestJavac.class
    Compiled from "TestJavac.java"
    public class TestJavac {
      public TestJavac();
      public static void main(java.lang.String[]);
    }
    

    (2)命令:javap -c

    C:UsersHBKJDesktopTestJavac>javap -c TestJavac.class
    Compiled from "TestJavac.java"
    public class TestJavac {
      public TestJavac(); // 构造器
        Code:
           0: aload_0
           1: invokespecial #1                  // Method java/lang/Object."<init>":()V
           4: return
    
      public static void main(java.lang.String[]);
        Code:
           0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
           3: ldc           #3                  // String Test Javac
           5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
           8: new           #5                  // class TestJavac$Person
          11: dup
          12: ldc           #6                  // String Javac
          14: bipush        14
          16: invokestatic  #7                  // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
          19: invokespecial #8                  // Method TestJavac$Person."<init>":(Ljava/lang/String;Ljava/lang/Integer;)V
          22: astore_1
          23: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
          26: aload_1
          27: invokevirtual #9                  // Method TestJavac$Person.getName:()Ljava/lang/String;
          30: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
          33: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
          36: aload_1
          37: invokevirtual #10                 // Method TestJavac$Person.getAge:()Ljava/lang/Integer;
          40: invokevirtual #11                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
          43: return
    }
    

    三、jps(JVM Process Status Tool)

    1、功能:列出正在运行的虚拟机进程,并显示虚拟机执行主类的名称和这些进程的唯一ID。

    2、主要选项

    选项 作用
    -q 省略主类名称(java8默认参数)
    -l 输出主类名称(java10默认参数)
    -v 输出虚拟机进程启动时JVM参数

    3、例子(Idea IDE进程)

    PS C:Windowssystem32> jps
    9024 Jps
    9796 Launcher
    9860
    
    PS C:Windowssystem32> jps -l
    9796 org.jetbrains.jps.cmdline.Launcher
    9860
    8540 jdk.jcmd/sun.tools.jps.Jps
    
    PS C:Windowssystem32> jps -v
    8404 Jps -Dapplication.home=E:developsoftwarejava10jdk -Xms8m -Djdk.module.main=jdk.jcmd
    9796 Launcher -Xmx700m -Djava.awt.headless=true -Djdt.compiler.useSingleThread=true -Dpreload.project.path=E:/develop/project/AlgorithmsLearning -Dpreload.config.path=C:/Users/HBKJ/.IntelliJIdea2018.1/config/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Djava.net.preferIPv4Stack=true -Dio.netty.initialSeedUniquifier=7903075717686063478 -Dfile.encoding=GBK -Duser.language=zh -Duser.country=CN -Didea.paths.selector=IntelliJIdea2018.1 -Didea.home.path=D:softwareIntelliJ IDEA 2018.1.1 -Didea.config.path=C:UsersHBKJ.IntelliJIdea2018.1config -Didea.plugins.path=C:UsersHBKJ.IntelliJIdea2018.1configplugins -Djps.log.dir=C:/Users/HBKJ/.IntelliJIdea2018.1/system/log/build-log -Djps.fallback.jdk.home=D:/software/IntelliJ IDEA 2018.1.1/jre64 -Djps.fallback.jdk.version=1.8.0_152-release -Dio.netty.noUnsafe=true -Djava.io.tmpdir=C:/Users/HBKJ/.IntelliJIdea2018.1/system/compile-server/algorithmslearning_af8be974/_temp_ -Djps.backward.ref.index.builder=true -Dkotlin.incremental.compilation=true -Dkotlin.
    9860  -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -javaagent:D:/software/IntelliJ IDEA 2018.1.1/bin/JetbrainsCrack-2.7-release-str.jar -Djb.vmOptionsFile=D:softwareIntelliJ IDEA 2018.1.1inidea64.exe.vmoptions -Didea.jre.check=true -Dide.native.launcher=true -Didea.paths.selector=IntelliJIdea2018.1 -XX:ErrorFile=C:UsersHBKJjava_error_in_idea_%p.log -XX:HeapDumpPath=C:UsersHBKJjava_error_in_idea.hprof
    

    四、jstack(Stack Trace for java)

    1、功能:生成JVM当前时间的线程快照(threaddump或javacore文件)。

    • 线程快照:当前JVM内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是为了定位线程长时间停顿的原因。
    • 线程长时间停顿情况:死锁、死循环、请求外部资源等

    2、主要选项

    选项 作用
    -l 同时显示锁的附加信息

    3、例子(Idea IDE进程)

    PS C:UsersHBKJ> jstack 9796
    2018-07-14 14:33:38
    Full thread dump Java HotSpot(TM) 64-Bit Server VM (10.0.1+10 mixed mode):
    
    Threads class SMR info:
    _java_thread_list=0x000001a3b0b585f0, length=14, elements={
    0x000001a3aea36000, 0x000001a3aea37000, 0x000001a3aea3d800, 0x000001a3aea3e000,
    0x000001a3af2c8800, 0x000001a3af2d1000, 0x000001a3af2d4000, 0x000001a3af2d8000,
    0x000001a3af2e8800, 0x000001a3af47f800, 0x000001a3af484000, 0x000001a3afb2f000,
    0x000001a38ff10000, 0x000001a3b0cb0800
    }
    
    "Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x000001a3aea36000 nid=0x1e44 waiting on condition  [0x0000008ea28ff000]
       java.lang.Thread.State: RUNNABLE
            at java.lang.ref.Reference.waitForReferencePendingList(java.base@10.0.1/Native Method)
            at java.lang.ref.Reference.processPendingReferences(java.base@10.0.1/Reference.java:174)
            at java.lang.ref.Reference.access$000(java.base@10.0.1/Reference.java:44)
            at java.lang.ref.Reference$ReferenceHandler.run(java.base@10.0.1/Reference.java:138)
    
    "Finalizer" #3 daemon prio=8 os_prio=1 tid=0x000001a3aea37000 nid=0x1308 in Object.wait()  [0x0000008ea29fe000]
       java.lang.Thread.State: WAITING (on object monitor)
            at java.lang.Object.wait(java.base@10.0.1/Native Method)
            - waiting on <0x00000000d4e5e9c0> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(java.base@10.0.1/ReferenceQueue.java:151)
            - waiting to re-lock in wait() <0x00000000d4e5e9c0> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(java.base@10.0.1/ReferenceQueue.java:172)
            at java.lang.ref.Finalizer$FinalizerThread.run(java.base@10.0.1/Finalizer.java:216)
    
    "Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x000001a3aea3d800 nid=0x196c runnable  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x000001a3aea3e000 nid=0x3210 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x000001a3af2c8800 nid=0xe08 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
       No compile task
    
    "C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x000001a3af2d1000 nid=0x2a94 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
       No compile task
    
    "C2 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x000001a3af2d4000 nid=0x724 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
       No compile task
    
    "C1 CompilerThread3" #9 daemon prio=9 os_prio=2 tid=0x000001a3af2d8000 nid=0x20 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
       No compile task
    
    "Sweeper thread" #10 daemon prio=9 os_prio=2 tid=0x000001a3af2e8800 nid=0x2810 runnable  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "Service Thread" #11 daemon prio=9 os_prio=0 tid=0x000001a3af47f800 nid=0x23a8 runnable  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "Common-Cleaner" #12 daemon prio=8 os_prio=1 tid=0x000001a3af484000 nid=0x29b0 in Object.wait()  [0x0000008ea33ff000]
       java.lang.Thread.State: TIMED_WAITING (on object monitor)
            at java.lang.Object.wait(java.base@10.0.1/Native Method)
            - waiting on <0x00000000d4e213d8> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(java.base@10.0.1/ReferenceQueue.java:151)
            - waiting to re-lock in wait() <0x00000000d4e213d8> (a java.lang.ref.ReferenceQueue$Lock)
            at jdk.internal.ref.CleanerImpl.run(java.base@10.0.1/CleanerImpl.java:148)
            at java.lang.Thread.run(java.base@10.0.1/Thread.java:844)
            at jdk.internal.misc.InnocuousThread.run(java.base@10.0.1/InnocuousThread.java:134)
    
    "JPS event loop" #13 prio=5 os_prio=0 tid=0x000001a3afb2f000 nid=0x1674 runnable  [0x0000008ea45fe000]
       java.lang.Thread.State: RUNNABLE
            at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(java.base@10.0.1/Native Method)
            at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(java.base@10.0.1/WindowsSelectorImpl.java:296)
            at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(java.base@10.0.1/WindowsSelectorImpl.java:278)
            at sun.nio.ch.WindowsSelectorImpl.doSelect(java.base@10.0.1/WindowsSelectorImpl.java:159)
            at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@10.0.1/SelectorImpl.java:89)
            - locked <0x00000000d4e620c8> (a io.netty.channel.nio.SelectedSelectionKeySet)
            - locked <0x00000000d4e620e0> (a java.util.Collections$UnmodifiableSet)
            - locked <0x00000000d4e62048> (a sun.nio.ch.WindowsSelectorImpl)
            at sun.nio.ch.SelectorImpl.select(java.base@10.0.1/SelectorImpl.java:100)
            at io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
            at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:752)
            at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:408)
            at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
            at java.lang.Thread.run(java.base@10.0.1/Thread.java:844)
    
    "DestroyJavaVM" #15 prio=5 os_prio=0 tid=0x000001a38ff10000 nid=0x2278 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "NettythreadDeathWatcher-2-1" #17 daemon prio=1 os_prio=-2 tid=0x000001a3b0cb0800 nid=0x2740 waiting on condition  [0x0000008ea48fe000]
       java.lang.Thread.State: TIMED_WAITING (sleeping)
            at java.lang.Thread.sleep(java.base@10.0.1/Native Method)
            at io.netty.util.ThreadDeathWatcher$Watcher.run(ThreadDeathWatcher.java:152)
            at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
            at java.lang.Thread.run(java.base@10.0.1/Thread.java:844)
    
    "VM Thread" os_prio=2 tid=0x000001a3aea31800 nid=0x1de0 runnable
    
    "GC Thread#0" os_prio=2 tid=0x000001a38ff2c000 nid=0x9c8 runnable
    
    "GC Thread#1" os_prio=2 tid=0x000001a38ff2d800 nid=0x410 runnable
    
    "GC Thread#2" os_prio=2 tid=0x000001a38ff30000 nid=0x28e4 runnable
    
    "GC Thread#3" os_prio=2 tid=0x000001a38ff33800 nid=0x22a0 runnable
    
    "GC Thread#4" os_prio=2 tid=0x000001a38ff35800 nid=0x16e4 runnable
    
    "GC Thread#5" os_prio=2 tid=0x000001a38ff3a800 nid=0xfd8 runnable
    
    "GC Thread#6" os_prio=2 tid=0x000001a38ff3e000 nid=0x21a0 runnable
    
    "GC Thread#7" os_prio=2 tid=0x000001a38ff3f000 nid=0x1b88 runnable
    
    "G1 Main Marker" os_prio=2 tid=0x000001a38ff7e800 nid=0x2cd4 runnable
    
    "G1 Conc#0" os_prio=2 tid=0x000001a38ff81800 nid=0xe1c runnable
    
    "G1 Conc#1" os_prio=2 tid=0x000001a38ff82800 nid=0x91c runnable
    
    "G1 Refine#0" os_prio=2 tid=0x000001a38ffde800 nid=0x3350 runnable
    
    "G1 Refine#1" os_prio=2 tid=0x000001a3ae8ce000 nid=0x2d74 runnable
    
    "G1 Refine#2" os_prio=2 tid=0x000001a3ae8d0000 nid=0x59c runnable
    
    "G1 Refine#3" os_prio=2 tid=0x000001a3ae8d0800 nid=0x2f50 runnable
    
    "G1 Refine#4" os_prio=2 tid=0x000001a3ae8d5800 nid=0x2750 runnable
    
    "G1 Refine#5" os_prio=2 tid=0x000001a3ae8d8800 nid=0xa18 runnable
    
    "G1 Refine#6" os_prio=2 tid=0x000001a3ae8db000 nid=0x1c04 runnable
    
    "G1 Refine#7" os_prio=2 tid=0x000001a3ae8ec000 nid=0x3220 runnable
    
    "G1 Young RemSet Sampling" os_prio=2 tid=0x000001a3ae8ec800 nid=0x23cc runnable
    "VM Periodic Task Thread" os_prio=2 tid=0x000001a3af485000 nid=0x1540 waiting on condition
    
    JNI global references: 14
    
    #################################################
    # 使用-l选项将输出Locked ownable synchronizers 内容
    #################################################
    PS C:UsersHBKJ> jstack -l  9796
    2018-07-14 14:41:41
    Full thread dump Java HotSpot(TM) 64-Bit Server VM (10.0.1+10 mixed mode):
    
    Threads class SMR info:
    _java_thread_list=0x000001a3b0b585f0, length=14, elements={
    0x000001a3aea36000, 0x000001a3aea37000, 0x000001a3aea3d800, 0x000001a3aea3e000,
    0x000001a3af2c8800, 0x000001a3af2d1000, 0x000001a3af2d4000, 0x000001a3af2d8000,
    0x000001a3af2e8800, 0x000001a3af47f800, 0x000001a3af484000, 0x000001a3afb2f000,
    0x000001a38ff10000, 0x000001a3b0cb0800
    }
    
    "Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x000001a3aea36000 nid=0x1e44 waiting on condition  [0x0000008ea28ff000]
       java.lang.Thread.State: RUNNABLE
            at java.lang.ref.Reference.waitForReferencePendingList(java.base@10.0.1/Native Method)
            at java.lang.ref.Reference.processPendingReferences(java.base@10.0.1/Reference.java:174)
            at java.lang.ref.Reference.access$000(java.base@10.0.1/Reference.java:44)
            at java.lang.ref.Reference$ReferenceHandler.run(java.base@10.0.1/Reference.java:138)
    
       Locked ownable synchronizers:
            - None
    
    "Finalizer" #3 daemon prio=8 os_prio=1 tid=0x000001a3aea37000 nid=0x1308 in Object.wait()  [0x0000008ea29fe000]
       java.lang.Thread.State: WAITING (on object monitor)
            at java.lang.Object.wait(java.base@10.0.1/Native Method)
            - waiting on <0x00000000d4e5e9c0> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(java.base@10.0.1/ReferenceQueue.java:151)
            - waiting to re-lock in wait() <0x00000000d4e5e9c0> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(java.base@10.0.1/ReferenceQueue.java:172)
            at java.lang.ref.Finalizer$FinalizerThread.run(java.base@10.0.1/Finalizer.java:216)
    
       Locked ownable synchronizers:
            - None
    
    "Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x000001a3aea3d800 nid=0x196c runnable  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
       Locked ownable synchronizers:
            - None
    
    "Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x000001a3aea3e000 nid=0x3210 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
       Locked ownable synchronizers:
            - None
    
    "C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x000001a3af2c8800 nid=0xe08 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
       No compile task
    
       Locked ownable synchronizers:
            - None
    
    "C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x000001a3af2d1000 nid=0x2a94 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
       No compile task
    
       Locked ownable synchronizers:
            - None
    
    "C2 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x000001a3af2d4000 nid=0x724 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
       No compile task
    
       Locked ownable synchronizers:
            - None
    
    "C1 CompilerThread3" #9 daemon prio=9 os_prio=2 tid=0x000001a3af2d8000 nid=0x20 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
       No compile task
    
       Locked ownable synchronizers:
            - None
    
    "Sweeper thread" #10 daemon prio=9 os_prio=2 tid=0x000001a3af2e8800 nid=0x2810 runnable  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
       Locked ownable synchronizers:
            - None
    
    "Service Thread" #11 daemon prio=9 os_prio=0 tid=0x000001a3af47f800 nid=0x23a8 runnable  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
       Locked ownable synchronizers:
            - None
    
    "Common-Cleaner" #12 daemon prio=8 os_prio=1 tid=0x000001a3af484000 nid=0x29b0 in Object.wait()  [0x0000008ea33ff000]
       java.lang.Thread.State: TIMED_WAITING (on object monitor)
            at java.lang.Object.wait(java.base@10.0.1/Native Method)
            - waiting on <0x00000000d4e213d8> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(java.base@10.0.1/ReferenceQueue.java:151)
            - waiting to re-lock in wait() <0x00000000d4e213d8> (a java.lang.ref.ReferenceQueue$Lock)
            at jdk.internal.ref.CleanerImpl.run(java.base@10.0.1/CleanerImpl.java:148)
            at java.lang.Thread.run(java.base@10.0.1/Thread.java:844)
            at jdk.internal.misc.InnocuousThread.run(java.base@10.0.1/InnocuousThread.java:134)
    
       Locked ownable synchronizers:
            - None
    
    "JPS event loop" #13 prio=5 os_prio=0 tid=0x000001a3afb2f000 nid=0x1674 runnable  [0x0000008ea45fe000]
       java.lang.Thread.State: RUNNABLE
            at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(java.base@10.0.1/Native Method)
            at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(java.base@10.0.1/WindowsSelectorImpl.java:296)
            at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(java.base@10.0.1/WindowsSelectorImpl.java:278)
            at sun.nio.ch.WindowsSelectorImpl.doSelect(java.base@10.0.1/WindowsSelectorImpl.java:159)
            at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@10.0.1/SelectorImpl.java:89)
            - locked <0x00000000d4e620c8> (a io.netty.channel.nio.SelectedSelectionKeySet)
            - locked <0x00000000d4e620e0> (a java.util.Collections$UnmodifiableSet)
            - locked <0x00000000d4e62048> (a sun.nio.ch.WindowsSelectorImpl)
            at sun.nio.ch.SelectorImpl.select(java.base@10.0.1/SelectorImpl.java:100)
            at io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
            at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:752)
            at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:408)
            at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
            at java.lang.Thread.run(java.base@10.0.1/Thread.java:844)
    
       Locked ownable synchronizers:
            - None
    
    "DestroyJavaVM" #15 prio=5 os_prio=0 tid=0x000001a38ff10000 nid=0x2278 waiting on condition  [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
       Locked ownable synchronizers:
            - None
    
    "NettythreadDeathWatcher-2-1" #17 daemon prio=1 os_prio=-2 tid=0x000001a3b0cb0800 nid=0x2740 waiting on condition  [0x0000008ea48fe000]
       java.lang.Thread.State: TIMED_WAITING (sleeping)
            at java.lang.Thread.sleep(java.base@10.0.1/Native Method)
            at io.netty.util.ThreadDeathWatcher$Watcher.run(ThreadDeathWatcher.java:152)
            at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
            at java.lang.Thread.run(java.base@10.0.1/Thread.java:844)
    
       Locked ownable synchronizers:
            - None
    "VM Thread" os_prio=2 tid=0x000001a3aea31800 nid=0x1de0 runnable
    
    "GC Thread#0" os_prio=2 tid=0x000001a38ff2c000 nid=0x9c8 runnable
    
    "GC Thread#1" os_prio=2 tid=0x000001a38ff2d800 nid=0x410 runnable
    
    "GC Thread#2" os_prio=2 tid=0x000001a38ff30000 nid=0x28e4 runnable
    
    "GC Thread#3" os_prio=2 tid=0x000001a38ff33800 nid=0x22a0 runnable
    
    "GC Thread#4" os_prio=2 tid=0x000001a38ff35800 nid=0x16e4 runnable
    
    "GC Thread#5" os_prio=2 tid=0x000001a38ff3a800 nid=0xfd8 runnable
    
    "GC Thread#6" os_prio=2 tid=0x000001a38ff3e000 nid=0x21a0 runnable
    
    "GC Thread#7" os_prio=2 tid=0x000001a38ff3f000 nid=0x1b88 runnable
    
    "G1 Main Marker" os_prio=2 tid=0x000001a38ff7e800 nid=0x2cd4 runnable
    
    "G1 Conc#0" os_prio=2 tid=0x000001a38ff81800 nid=0xe1c runnable
    
    "G1 Conc#1" os_prio=2 tid=0x000001a38ff82800 nid=0x91c runnable
    
    "G1 Refine#0" os_prio=2 tid=0x000001a38ffde800 nid=0x3350 runnable
    
    "G1 Refine#1" os_prio=2 tid=0x000001a3ae8ce000 nid=0x2d74 runnable
    
    "G1 Refine#2" os_prio=2 tid=0x000001a3ae8d0000 nid=0x59c runnable
    
    "G1 Refine#3" os_prio=2 tid=0x000001a3ae8d0800 nid=0x2f50 runnable
    
    "G1 Refine#4" os_prio=2 tid=0x000001a3ae8d5800 nid=0x2750 runnable
    
    "G1 Refine#5" os_prio=2 tid=0x000001a3ae8d8800 nid=0xa18 runnable
    
    "G1 Refine#6" os_prio=2 tid=0x000001a3ae8db000 nid=0x1c04 runnable
    
    "G1 Refine#7" os_prio=2 tid=0x000001a3ae8ec000 nid=0x3220 runnable
    
    "G1 Young RemSet Sampling" os_prio=2 tid=0x000001a3ae8ec800 nid=0x23cc runnable
    "VM Periodic Task Thread" os_prio=2 tid=0x000001a3af485000 nid=0x1540 waiting on condition
    
    JNI global references: 14
    

    四、在线分析工具

    Java Thread Dump Analyzer

    简单Java线程状态介绍

  • 相关阅读:
    Codeforces 877 C. Slava and tanks
    Codeforces 877 D. Olya and Energy Drinks
    2017 10.25 NOIP模拟赛
    2017 国庆湖南 Day1
    UVA 12113 Overlapping Squares
    学大伟业 国庆Day2
    51nod 1629 B君的圆锥
    51nod 1381 硬币游戏
    [JSOI2010]满汉全席
    学大伟业 2017 国庆 Day1
  • 原文地址:https://www.cnblogs.com/linzhanfly/p/9346275.html
Copyright © 2011-2022 走看看