http://unix.derkeiler.com/Mailing-Lists/FreeBSD/current/2006-10/msg00555.html Since
1.4 (or 1.3 if you used "native" threads with it, which we didn't by
default) its been 1:1. Green threads was a userland threading
implementation entirely in the JVM, much like libc_r. It wasn't M:N but rather M:1 (since there were no system threads, just the JVMs own internal threads).
http://unix.derkeiler.com/Mailing-Lists/FreeBSD/current/2006-10/msg00575.html I
ran some simple tests with the 1.4.2 JVM. It appears that, at least in
my simple test cases, all threads created in the JVM are exposed to the
OS. Typically this appears to be about n+8 to n+9 threads, where n is
the number of threads created by the application itself, and 8/9 is the
number created by the JVM.
http://unix.derkeiler.com/Mailing-Lists/FreeBSD/current/2006-10/msg00586.html If
you really want to know, just send the running process a SIGQUIT and it
will dump the currently running threads to stdout. But yes, 1.4 and 1.5
both use "native" threads which correspond 1:1 with OS threads (plus
there are threads the JVM creates itself, as you note). The JVM threads include garbage collection and AWT event handlers at least.