java - 命名 2 个 Java 虚拟机线程

标签 java jvm

我正在为 Java 考试而学习,在过去的一次考试中,讲师问了这个问题,我想知道是否有人可以帮助我理解它:

In the context of java explain threads. Give an example of when you might use a thread. Name two java virtual machine threads.

问题的前两部分很简单,但是关于命名两个 VM 线程的部分真的让我很困惑。

最佳答案

来自测试程序的简单线程转储显示了以下线程 - 一个是应用程序线程,然后还有 8 个其他 JVM 线程:

Full thread dump Java HotSpot(TM) Client VM (14.0-b16 mixed mode):

"Low Memory Detector" daemon prio=6 tid=0x0aad6c00 nid=0x9c0 runnable [0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x0aad0c00 nid=0x6d4 waiting on condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" daemon prio=10 tid=0x0aacb400 nid=0xda4 runnable [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x0aaca000 nid=0xcc8 waiting on condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x0aab7400 nid=0xba0 in Object.wait() [0x0ac2f000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x029a0b18> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(Unknown Source)
        - locked <0x029a0b18> (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" daemon prio=10 tid=0x0aab2c00 nid=0x418 in Object.wait() [0x0abdf000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x029a0a20> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
        - locked <0x029a0a20> (a java.lang.ref.Reference$Lock)

"main" prio=6 tid=0x002b6400 nid=0x3d8 runnable [0x0090f000]
   java.lang.Thread.State: RUNNABLE
        at TestClass.main(TestClass.java:8)

"VM Thread" prio=10 tid=0x0aaafc00 nid=0x184 runnable

"VM Periodic Task Thread" prio=10 tid=0x0aad9000 nid=0xc7c waiting on condition

不过,作为这些结果的 YMMV 高度依赖于您使用的 JVM。

关于java - 命名 2 个 Java 虚拟机线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1317094/

相关文章:

java - 在没有向导的情况下对 Eclipse Java 项目进行 Mavening

java - JSTL,无法填充组合框

java - 如何在不破坏 CoordinatorLayout.LayoutParams 的情况下重写 CoordinatorLayout.Behavior

java - 重写字符串的部分内容

java - JVM 和操作系统 DNS 缓存

android - 如何从可移植驱动器运行用于 Android 开发的 JVM、SDK 和 eclipse?

Java 从 currentTimeMillis 到秒,给出 0 或 1

java - 为什么一个 40 亿次迭代的 Java 循环只需要 2 毫秒?

java - 如何减少 GC CPU 使用率的峰值

java - JVM内存中的java char big endian吗?