Java 虚拟线程 ForkJoinPool 工作线程运行情况

Java juc About 22,969 words

程序初始运行时

当程序初始运行时,ForkJoinPool并不会创建工作线程。

PS \openjdk-25\bin> jcmd 14704 Thread.print
14704:
2025-10-07 08:40:03
Full thread dump OpenJDK 64-Bit Server VM (25+36-3489 mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x000001e66a5bcc90, length=13, elements={
0x000001e64ddfad00, 0x000001e66a37d570, 0x000001e66a37e280, 0x000001e66a385210,
0x000001e66a3861e0, 0x000001e66a387020, 0x000001e66a387be0, 0x000001e66a38aee0,
0x000001e66a3923c0, 0x000001e66a54a630, 0x000001e66a57c8a0, 0x000001e66a57d060,
0x000001e66f131330
}

"main" #3 [16316] prio=5 os_prio=0 cpu=218.75ms elapsed=13.06s tid=0x000001e64ddfad00 nid=16316 waiting on condition  [0x000000c4fa2ff000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleepNanos0(java.base@25/Native Method)
        at java.lang.Thread.sleepNanos(java.base@25/Thread.java:509)
        at java.lang.Thread.sleep(java.base@25/Thread.java:540)
        at com.center.JavaVirtualThreadDemo.main(JavaVirtualThreadDemo.java:25)

"Reference Handler" #13 [15344] daemon prio=10 os_prio=2 cpu=0.00ms elapsed=12.98s tid=0x000001e66a37d570 nid=15344 waiting on condition  [0x000000c4faaff000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.ref.Reference.waitForReferencePendingList(java.base@25/Native Method)
        at java.lang.ref.Reference.processPendingReferences(java.base@25/Reference.java:246)
        at java.lang.ref.Reference$ReferenceHandler.run(java.base@25/Reference.java:208)

"Finalizer" #14 [19604] daemon prio=8 os_prio=1 cpu=0.00ms elapsed=12.98s tid=0x000001e66a37e280 nid=19604 in Object.wait()  [0x000000c4fabff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait0(java.base@25/Native Method)
        - waiting on <0x0000000089b022f8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.Object.wait(java.base@25/Object.java:389)
        at java.lang.Object.wait(java.base@25/Object.java:351)
        at java.lang.ref.ReferenceQueue.remove0(java.base@25/ReferenceQueue.java:137)
        at java.lang.ref.ReferenceQueue.remove(java.base@25/ReferenceQueue.java:215)
        - locked <0x0000000089b022f8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.Finalizer$FinalizerThread.run(java.base@25/Finalizer.java:165)

"Signal Dispatcher" #15 [8128] daemon prio=9 os_prio=2 cpu=0.00ms elapsed=12.98s tid=0x000001e66a385210 nid=8128 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" #16 [9768] daemon prio=5 os_prio=2 cpu=0.00ms elapsed=12.98s tid=0x000001e66a3861e0 nid=9768 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #17 [14768] daemon prio=9 os_prio=0 cpu=0.00ms elapsed=12.98s tid=0x000001e66a387020 nid=14768 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Monitor Deflation Thread" #18 [11988] daemon prio=9 os_prio=0 cpu=0.00ms elapsed=12.98s tid=0x000001e66a387be0 nid=11988 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #19 [15708] daemon prio=9 os_prio=2 cpu=62.50ms elapsed=12.98s tid=0x000001e66a38aee0 nid=15708 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #21 [3128] daemon prio=9 os_prio=2 cpu=187.50ms elapsed=12.98s tid=0x000001e66a3923c0 nid=3128 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Common-Cleaner" #22 [2332] daemon prio=8 os_prio=1 cpu=0.00ms elapsed=12.83s tid=0x000001e66a54a630 nid=2332 in Object.wait()  [0x000000c4fb2fe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait0(java.base@25/Native Method)
        - waiting on <0x00000000899e5a68> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.Object.wait(java.base@25/Object.java:389)
        at java.lang.ref.ReferenceQueue.remove0(java.base@25/ReferenceQueue.java:123)
        at java.lang.ref.ReferenceQueue.remove(java.base@25/ReferenceQueue.java:201)
        - locked <0x00000000899e5a68> (a java.lang.ref.ReferenceQueue$Lock)
        at jdk.internal.ref.CleanerImpl.run(java.base@25/CleanerImpl.java:146)
        at java.lang.Thread.runWith(java.base@25/Thread.java:1487)
        at java.lang.Thread.run(java.base@25/Thread.java:1474)
        at jdk.internal.misc.InnocuousThread.run(java.base@25/InnocuousThread.java:148)

"Monitor Ctrl-Break" #23 [8764] daemon prio=5 os_prio=0 cpu=46.88ms elapsed=12.79s tid=0x000001e66a57c8a0 nid=8764 runnable  [0x000000c4fb3fe000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.SocketDispatcher.read0(java.base@25/Native Method)
        at sun.nio.ch.SocketDispatcher.read(java.base@25/SocketDispatcher.java:47)
        at sun.nio.ch.NioSocketImpl.tryRead(java.base@25/NioSocketImpl.java:255)
        at sun.nio.ch.NioSocketImpl.implRead(java.base@25/NioSocketImpl.java:305)
        at sun.nio.ch.NioSocketImpl.read(java.base@25/NioSocketImpl.java:354)
        at sun.nio.ch.NioSocketImpl$1.read(java.base@25/NioSocketImpl.java:798)
        at java.net.Socket$SocketInputStream.implRead(java.base@25/Socket.java:974)
        at java.net.Socket$SocketInputStream.read(java.base@25/Socket.java:964)
        at sun.nio.cs.StreamDecoder.readBytes(java.base@25/StreamDecoder.java:279)
        at sun.nio.cs.StreamDecoder.implRead(java.base@25/StreamDecoder.java:322)
        at sun.nio.cs.StreamDecoder.read(java.base@25/StreamDecoder.java:186)
        - locked <0x00000000898afa30> (a java.io.InputStreamReader)
        at java.io.InputStreamReader.read(java.base@25/InputStreamReader.java:183)
        at java.io.BufferedReader.fill(java.base@25/BufferedReader.java:166)
]
   java.lang.Thread.State: RUNNABLE
        at java.lang.VirtualThread.takeVirtualThreadListToUnblock(java.base@25/Native Method)
        at java.lang.VirtualThread.unblockVirtualThreads(java.base@25/VirtualThread.java:1507)
        at java.lang.VirtualThread$$Lambda/0x000000002f00b058.run(java.base@25/Unknown Source)
        at java.lang.Thread.runWith(java.base@25/Thread.java:1487)
        at java.lang.Thread.run(java.base@25/Thread.java:1474)
        at jdk.internal.misc.InnocuousThread.run(java.base@25/InnocuousThread.java:148)

"VM Thread" os_prio=2 cpu=15.62ms elapsed=13.02s tid=0x000001e64debd9b0 nid=14856 runnable

"VM Periodic Task Thread" os_prio=2 cpu=0.00ms elapsed=13.03s tid=0x000001e66a36ae10 nid=13456 waiting on condition

"G1 Service" os_prio=2 cpu=0.00ms elapsed=13.05s tid=0x000001e64dea0f60 nid=16344 runnable

"G1 Refine#0" os_prio=2 cpu=0.00ms elapsed=13.05s tid=0x000001e64de9e540 nid=13752 runnable

"G1 Conc#0" os_prio=2 cpu=0.00ms elapsed=13.05s tid=0x000001e64bcae650 nid=6488 runnable

"G1 Main Marker" os_prio=2 cpu=0.00ms elapsed=13.05s tid=0x000001e64de69370 nid=17172 runnable

"GC Thread#0" os_prio=2 cpu=0.00ms elapsed=13.05s tid=0x000001e64de54590 nid=15544 runnable

JNI global refs: 14, weak refs: 0

开启虚拟线程后

当开启虚拟线程后,ForkJoinPool会创建工作线程,并设置keepAlive时间为60秒。

PS \openjdk-25\bin> jcmd 14704 Thread.print
14704:
2025-10-07 08:40:36
Full thread dump OpenJDK 64-Bit Server VM (25+36-3489 mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x000001e66a57ff10, length=14, elements={
0x000001e64ddfad00, 0x000001e66a37d570, 0x000001e66a37e280, 0x000001e66a385210,
0x000001e66a3861e0, 0x000001e66a387020, 0x000001e66a387be0, 0x000001e66a38aee0,
0x000001e66a3923c0, 0x000001e66a54a630, 0x000001e66a57c8a0, 0x000001e66a57d060,
0x000001e66f131330, 0x000001e66f377cf0
}

"main" #3 [16316] prio=5 os_prio=0 cpu=218.75ms elapsed=45.41s tid=0x000001e64ddfad00 nid=16316 waiting on condition  [0x000000c4fa2ff000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleepNanos0(java.base@25/Native Method)
        at java.lang.Thread.sleepNanos(java.base@25/Thread.java:509)
        at java.lang.Thread.sleep(java.base@25/Thread.java:540)
        at com.center.JavaVirtualThreadDemo.main(JavaVirtualThreadDemo.java:28)

"Reference Handler" #13 [15344] daemon prio=10 os_prio=2 cpu=0.00ms elapsed=45.33s tid=0x000001e66a37d570 nid=15344 waiting on condition  [0x000000c4faaff000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.ref.Reference.waitForReferencePendingList(java.base@25/Native Method)
        at java.lang.ref.Reference.processPendingReferences(java.base@25/Reference.java:246)
        at java.lang.ref.Reference$ReferenceHandler.run(java.base@25/Reference.java:208)

"Finalizer" #14 [19604] daemon prio=8 os_prio=1 cpu=0.00ms elapsed=45.33s tid=0x000001e66a37e280 nid=19604 in Object.wait()  [0x000000c4fabff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait0(java.base@25/Native Method)
        - waiting on <0x0000000089b022f8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.Object.wait(java.base@25/Object.java:389)
        at java.lang.Object.wait(java.base@25/Object.java:351)
        at java.lang.ref.ReferenceQueue.remove0(java.base@25/ReferenceQueue.java:137)
        at java.lang.ref.ReferenceQueue.remove(java.base@25/ReferenceQueue.java:215)
        - locked <0x0000000089b022f8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.Finalizer$FinalizerThread.run(java.base@25/Finalizer.java:165)

"Signal Dispatcher" #15 [8128] daemon prio=9 os_prio=2 cpu=0.00ms elapsed=45.33s tid=0x000001e66a385210 nid=8128 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" #16 [9768] daemon prio=5 os_prio=2 cpu=0.00ms elapsed=45.33s tid=0x000001e66a3861e0 nid=9768 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #17 [14768] daemon prio=9 os_prio=0 cpu=0.00ms elapsed=45.33s tid=0x000001e66a387020 nid=14768 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Monitor Deflation Thread" #18 [11988] daemon prio=9 os_prio=0 cpu=0.00ms elapsed=45.33s tid=0x000001e66a387be0 nid=11988 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #19 [15708] daemon prio=9 os_prio=2 cpu=62.50ms elapsed=45.33s tid=0x000001e66a38aee0 nid=15708 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #21 [3128] daemon prio=9 os_prio=2 cpu=187.50ms elapsed=45.33s tid=0x000001e66a3923c0 nid=3128 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Common-Cleaner" #22 [2332] daemon prio=8 os_prio=1 cpu=0.00ms elapsed=45.19s tid=0x000001e66a54a630 nid=2332 in Object.wait()  [0x000000c4fb2fe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait0(java.base@25/Native Method)
        - waiting on <0x00000000899e5a68> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.Object.wait(java.base@25/Object.java:389)
        at java.lang.ref.ReferenceQueue.remove0(java.base@25/ReferenceQueue.java:123)
        at java.lang.ref.ReferenceQueue.remove(java.base@25/ReferenceQueue.java:201)
        - locked <0x00000000899e5a68> (a java.lang.ref.ReferenceQueue$Lock)
        at jdk.internal.ref.CleanerImpl.run(java.base@25/CleanerImpl.java:146)
        at java.lang.Thread.runWith(java.base@25/Thread.java:1487)
        at java.lang.Thread.run(java.base@25/Thread.java:1474)
        at jdk.internal.misc.InnocuousThread.run(java.base@25/InnocuousThread.java:148)

"Monitor Ctrl-Break" #23 [8764] daemon prio=5 os_prio=0 cpu=46.88ms elapsed=45.14s tid=0x000001e66a57c8a0 nid=8764 runnable  [0x000000c4fb3fe000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.SocketDispatcher.read0(java.base@25/Native Method)
        at sun.nio.ch.SocketDispatcher.read(java.base@25/SocketDispatcher.java:47)
        at sun.nio.ch.NioSocketImpl.tryRead(java.base@25/NioSocketImpl.java:255)
        at sun.nio.ch.NioSocketImpl.implRead(java.base@25/NioSocketImpl.java:305)
        at sun.nio.ch.NioSocketImpl.read(java.base@25/NioSocketImpl.java:354)
        at sun.nio.ch.NioSocketImpl$1.read(java.base@25/NioSocketImpl.java:798)
        at java.net.Socket$SocketInputStream.implRead(java.base@25/Socket.java:974)
        at java.net.Socket$SocketInputStream.read(java.base@25/Socket.java:964)
        at sun.nio.cs.StreamDecoder.readBytes(java.base@25/StreamDecoder.java:279)
        at sun.nio.cs.StreamDecoder.implRead(java.base@25/StreamDecoder.java:322)
        at sun.nio.cs.StreamDecoder.read(java.base@25/StreamDecoder.java:186)
        - locked <0x00000000898afa30> (a java.io.InputStreamReader)
        at java.io.InputStreamReader.read(java.base@25/InputStreamReader.java:183)
        at java.io.BufferedReader.fill(java.base@25/BufferedReader.java:166)
        at java.io.BufferedReader.readLine(java.base@25/BufferedReader.java:333)
        - locked <0x00000000898afa30> (a java.io.InputStreamReader)
        at java.io.BufferedReader.readLine(java.base@25/BufferedReader.java:400)
        at com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:31)

"Notification Thread" #24 [11664] daemon prio=9 os_prio=0 cpu=0.00ms elapsed=45.14s tid=0x000001e66a57d060 nid=11664 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"VirtualThread-unblocker" #25 [3220] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=45.06s tid=0x000001e66f131330 nid=3220 runnable  [0x000000c4fb5ff000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.VirtualThread.takeVirtualThreadListToUnblock(java.base@25/Native Method)
        at java.lang.VirtualThread.unblockVirtualThreads(java.base@25/VirtualThread.java:1507)
        at java.lang.VirtualThread$$Lambda/0x000000002f00b058.run(java.base@25/Unknown Source)
        at java.lang.Thread.runWith(java.base@25/Thread.java:1487)
        at java.lang.Thread.run(java.base@25/Thread.java:1474)
        at jdk.internal.misc.InnocuousThread.run(java.base@25/InnocuousThread.java:148)

"ForkJoinPool-1-worker-1" #27 [8068] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=25.04s tid=0x000001e66f377cf0 nid=8068 waiting on condition  [0x000000c4fb6ff000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@25/Native Method)
        - parking to wait for  <0x00000000898543b8> (a java.util.concurrent.ForkJoinPool)
        at java.util.concurrent.ForkJoinPool.awaitWork(java.base@25/ForkJoinPool.java:2109)
        at java.util.concurrent.ForkJoinPool.deactivate(java.base@25/ForkJoinPool.java:2063)
        at java.util.concurrent.ForkJoinPool.runWorker(java.base@25/ForkJoinPool.java:2027)
        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@25/ForkJoinWorkerThread.java:187)

"VM Thread" os_prio=2 cpu=15.62ms elapsed=45.38s tid=0x000001e64debd9b0 nid=14856 runnable

"VM Periodic Task Thread" os_prio=2 cpu=0.00ms elapsed=45.38s tid=0x000001e66a36ae10 nid=13456 waiting on condition

"G1 Service" os_prio=2 cpu=0.00ms elapsed=45.41s tid=0x000001e64dea0f60 nid=16344 runnable

"G1 Refine#0" os_prio=2 cpu=0.00ms elapsed=45.41s tid=0x000001e64de9e540 nid=13752 runnable

"G1 Conc#0" os_prio=2 cpu=0.00ms elapsed=45.41s tid=0x000001e64bcae650 nid=6488 runnable

"G1 Main Marker" os_prio=2 cpu=0.00ms elapsed=45.41s tid=0x000001e64de69370 nid=17172 runnable

"GC Thread#0" os_prio=2 cpu=0.00ms elapsed=45.41s tid=0x000001e64de54590 nid=15544 runnable

JNI global refs: 14, weak refs: 0

60 秒后

ForkJoinPool创建的工作线程空闲超过了keepAlive时间后会被释放。

PS \openjdk-25\bin> jcmd 14704 Thread.print
14704:
2025-10-07 08:42:08
Full thread dump OpenJDK 64-Bit Server VM (25+36-3489 mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x000001e66a585a90, length=13, elements={
0x000001e64ddfad00, 0x000001e66a37d570, 0x000001e66a37e280, 0x000001e66a385210,
0x000001e66a3861e0, 0x000001e66a387020, 0x000001e66a387be0, 0x000001e66a38aee0,
0x000001e66a3923c0, 0x000001e66a54a630, 0x000001e66a57c8a0, 0x000001e66a57d060,
0x000001e66f131330
}

"main" #3 [16316] prio=5 os_prio=0 cpu=218.75ms elapsed=137.91s tid=0x000001e64ddfad00 nid=16316 waiting on condition  [0x000000c4fa2ff000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park(java.base@25/Native Method)
        at java.util.concurrent.locks.LockSupport.park(java.base@25/LockSupport.java:369)
        at com.center.JavaVirtualThreadDemo.main(JavaVirtualThreadDemo.java:30)

"Reference Handler" #13 [15344] daemon prio=10 os_prio=2 cpu=0.00ms elapsed=137.83s tid=0x000001e66a37d570 nid=15344 waiting on condition  [0x000000c4faaff000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.ref.Reference.waitForReferencePendingList(java.base@25/Native Method)
        at java.lang.ref.Reference.processPendingReferences(java.base@25/Reference.java:246)
        at java.lang.ref.Reference$ReferenceHandler.run(java.base@25/Reference.java:208)

"Finalizer" #14 [19604] daemon prio=8 os_prio=1 cpu=0.00ms elapsed=137.83s tid=0x000001e66a37e280 nid=19604 in Object.wait()  [0x000000c4fabff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait0(java.base@25/Native Method)
        - waiting on <0x0000000089b022f8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.Object.wait(java.base@25/Object.java:389)
        at java.lang.Object.wait(java.base@25/Object.java:351)
        at java.lang.ref.ReferenceQueue.remove0(java.base@25/ReferenceQueue.java:137)
        at java.lang.ref.ReferenceQueue.remove(java.base@25/ReferenceQueue.java:215)
        - locked <0x0000000089b022f8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.Finalizer$FinalizerThread.run(java.base@25/Finalizer.java:165)

"Signal Dispatcher" #15 [8128] daemon prio=9 os_prio=2 cpu=0.00ms elapsed=137.83s tid=0x000001e66a385210 nid=8128 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" #16 [9768] daemon prio=5 os_prio=2 cpu=0.00ms elapsed=137.83s tid=0x000001e66a3861e0 nid=9768 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #17 [14768] daemon prio=9 os_prio=0 cpu=0.00ms elapsed=137.83s tid=0x000001e66a387020 nid=14768 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Monitor Deflation Thread" #18 [11988] daemon prio=9 os_prio=0 cpu=0.00ms elapsed=137.83s tid=0x000001e66a387be0 nid=11988 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #19 [15708] daemon prio=9 os_prio=2 cpu=62.50ms elapsed=137.83s tid=0x000001e66a38aee0 nid=15708 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #21 [3128] daemon prio=9 os_prio=2 cpu=187.50ms elapsed=137.83s tid=0x000001e66a3923c0 nid=3128 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Common-Cleaner" #22 [2332] daemon prio=8 os_prio=1 cpu=0.00ms elapsed=137.68s tid=0x000001e66a54a630 nid=2332 in Object.wait()  [0x000000c4fb2fe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait0(java.base@25/Native Method)
        - waiting on <0x00000000899e5a68> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.Object.wait(java.base@25/Object.java:389)
        at java.lang.ref.ReferenceQueue.remove0(java.base@25/ReferenceQueue.java:123)
        at java.lang.ref.ReferenceQueue.remove(java.base@25/ReferenceQueue.java:201)
        - locked <0x00000000899e5a68> (a java.lang.ref.ReferenceQueue$Lock)
        at jdk.internal.ref.CleanerImpl.run(java.base@25/CleanerImpl.java:146)
        at java.lang.Thread.runWith(java.base@25/Thread.java:1487)
        at java.lang.Thread.run(java.base@25/Thread.java:1474)
        at jdk.internal.misc.InnocuousThread.run(java.base@25/InnocuousThread.java:148)

"Monitor Ctrl-Break" #23 [8764] daemon prio=5 os_prio=0 cpu=46.88ms elapsed=137.64s tid=0x000001e66a57c8a0 nid=8764 runnable  [0x000000c4fb3fe000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.SocketDispatcher.read0(java.base@25/Native Method)
        at sun.nio.ch.SocketDispatcher.read(java.base@25/SocketDispatcher.java:47)
        at sun.nio.ch.NioSocketImpl.tryRead(java.base@25/NioSocketImpl.java:255)
        at sun.nio.ch.NioSocketImpl.implRead(java.base@25/NioSocketImpl.java:305)
        at sun.nio.ch.NioSocketImpl.read(java.base@25/NioSocketImpl.java:354)
        at sun.nio.ch.NioSocketImpl$1.read(java.base@25/NioSocketImpl.java:798)
        at java.net.Socket$SocketInputStream.implRead(java.base@25/Socket.java:974)
        at java.net.Socket$SocketInputStream.read(java.base@25/Socket.java:964)
        at sun.nio.cs.StreamDecoder.readBytes(java.base@25/StreamDecoder.java:279)
        at sun.nio.cs.StreamDecoder.implRead(java.base@25/StreamDecoder.java:322)
        at sun.nio.cs.StreamDecoder.read(java.base@25/StreamDecoder.java:186)
        - locked <0x00000000898afa30> (a java.io.InputStreamReader)
        at java.io.InputStreamReader.read(java.base@25/InputStreamReader.java:183)
        at java.io.BufferedReader.fill(java.base@25/BufferedReader.java:166)
        at java.io.BufferedReader.readLine(java.base@25/BufferedReader.java:333)
        - locked <0x00000000898afa30> (a java.io.InputStreamReader)
        at java.io.BufferedReader.readLine(java.base@25/BufferedReader.java:400)
        at com.intellij.rt.execution.application.AppMainV2$1.run(AppMainV2.java:31)

"Notification Thread" #24 [11664] daemon prio=9 os_prio=0 cpu=0.00ms elapsed=137.64s tid=0x000001e66a57d060 nid=11664 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"VirtualThread-unblocker" #25 [3220] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=137.56s tid=0x000001e66f131330 nid=3220 runnable  [0x000000c4fb5ff000]
   java.lang.Thread.State: RUNNABLE
        at java.lang.VirtualThread.takeVirtualThreadListToUnblock(java.base@25/Native Method)
        at java.lang.VirtualThread.unblockVirtualThreads(java.base@25/VirtualThread.java:1507)
        at java.lang.VirtualThread$$Lambda/0x000000002f00b058.run(java.base@25/Unknown Source)
        at java.lang.Thread.runWith(java.base@25/Thread.java:1487)
        at java.lang.Thread.run(java.base@25/Thread.java:1474)
        at jdk.internal.misc.InnocuousThread.run(java.base@25/InnocuousThread.java:148)

"VM Thread" os_prio=2 cpu=15.62ms elapsed=137.87s tid=0x000001e64debd9b0 nid=14856 runnable

"VM Periodic Task Thread" os_prio=2 cpu=0.00ms elapsed=137.88s tid=0x000001e66a36ae10 nid=13456 waiting on condition

"G1 Service" os_prio=2 cpu=0.00ms elapsed=137.90s tid=0x000001e64dea0f60 nid=16344 runnable

"G1 Refine#0" os_prio=2 cpu=0.00ms elapsed=137.90s tid=0x000001e64de9e540 nid=13752 runnable

"G1 Conc#0" os_prio=2 cpu=0.00ms elapsed=137.91s tid=0x000001e64bcae650 nid=6488 runnable

"G1 Main Marker" os_prio=2 cpu=0.00ms elapsed=137.91s tid=0x000001e64de69370 nid=17172 runnable

"GC Thread#0" os_prio=2 cpu=0.00ms elapsed=137.91s tid=0x000001e64de54590 nid=15544 runnable

JNI global refs: 14, weak refs: 0
Views: 3 · Posted: 2025-12-22

———         Thanks for Reading         ———

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓
Today In History
Browsing Refresh