An API to get the state of a thread, but someone say it is not reliable - http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.State.html http://java.silke-wingens.de/2011/03/13/threads-states/?lang=en http://www.nabble.com/TDD-for-multi-threaded-programs-tf3627394.html#a10128844 Having said that, I have to note that using Thread#getState() is not something you can absolutely rely on as the behavior isn't guaranteed to be the same on all platforms. That is, it can be a useful tool for debugging and test-driving but not ideal for regression (unit) testing. Overview of Java thread - http://java67.blogspot.hk/2014/01/10-points-about-thread-and-javalangthread-in-java.html Loom - https://webtide.com/do-looms-claims-stack-up-part-1/ https://webtide.com/do-looms-claims-stack-up-part-2/ How will we debug Loom applications? - https://www.reddit.com/r/java/comments/vxvdrv/how_will_we_debug_loom_applications/ Question: Why exactly are fibers cheaper than platform threads? - https://www.reddit.com/r/java/comments/xcr66k/question_why_exactly_are_fibers_cheaper_than/ Handling Virtual Threads - https://dzone.com/articles/handling-virtual-threads 1. Avoid Synchronized Blocks/Methods 2. Avoid Thread Pools To Limit Resource Access 3. Reduce ThreadLocal Usage https://dzone.com/articles/pitfalls-to-avoid-when-switching-to-virtual-thread Exploring the design of Java’s new virtual threads - https://blogs.oracle.com/javamagazine/post/java-virtual-threads