$ java ThreadDumpPinnedDemo & pid=7126 done $ jcmd Thread.dump_to_file -format=json threaddump.json (taken mid-flight) 7126: Created /home/claude/java-core-examples/vt-pinning/target/threaddump.json --- the two virtual thread entries from that dump --- { "tid": "22", "time": "2026-09-30T06:32:51.489994627Z", "virtual": true, "name": "", "state": "TIMED_WAITING", "stack": [ "java.base/jdk.internal.misc.Unsafe.park(Native Method)", "java.base/java.lang.VirtualThread.parkOnCarrierThread(VirtualThread.java:822)", "java.base/java.lang.VirtualThread.parkNanos(VirtualThread.java:801)", "java.base/java.lang.VirtualThread.sleepNanos(VirtualThread.java:983)", "java.base/java.lang.Thread.sleepNanos(Thread.java:507)", "java.base/java.lang.Thread.sleep(Thread.java:540)", "com.ankurm.vtpinning.ThreadDumpPinnedDemo.sleepCallback(ThreadDumpPinnedDemo.java:22)", "com.ankurm.vtpinning.ThreadDumpPinnedDemo.blockingNativeCall(Native Method)", "java.base/java.lang.VirtualThread.run(VirtualThread.java:460)" ], "carrier": "23" } { "tid": "24", "time": "2026-09-30T06:32:51.490322496Z", "virtual": true, "name": "", "state": "TIMED_WAITING", "stack": [ "java.base/java.lang.VirtualThread.parkNanos(VirtualThread.java:787)", "java.base/java.lang.VirtualThread.sleepNanos(VirtualThread.java:983)", "java.base/java.lang.Thread.sleepNanos(Thread.java:507)", "java.base/java.lang.Thread.sleep(Thread.java:540)", "com.ankurm.vtpinning.ThreadDumpPinnedDemo.lambda$main$0(ThreadDumpPinnedDemo.java:34)", "java.base/java.lang.VirtualThread.run(VirtualThread.java:460)" ] }