JVM is a specification and there are multiple implementations of it (OpenJDK version and the Sun version)
My guess:
A JVM should simply use the underlying threading mechanism provided by the OS, which would imply POSIX Threads (pthreads) on UNIX (Mac OS X, Linux, etc.) and would imply WIN32 threads on Windows. Typically, those systems use a round-robin strategy by default.