In fact, the Java Virtual Machine specification does not specify how threads should be handled by the JVM. There is only a high level description . The Sun JVM itself made changes in this regard: before Java 1.1, it used the so-called Green Threads , which are managed by the JVM itself. He later used his own threads, which the host operating system provides.