upvote
Java already had M:N threads in the early days, aka green threads, because the JVM and Java specifications did not assert what kind of threading was to be provided.

Thus most JVM implementations had a mix of red (1:1:) and green (M:N) threads, eventually only red threads were kept in the surviving implementations.

With Project Loom now both models are officially supported and part of the specification.

reply
Yeah I've heard of the Java 1-2 greenthreads, but supposedly those were M:1, ie you could only run them on one core. At least this SCO release note linked from Wikipedia says that: https://www.sco.com/developers/java/j2sdk122-001/ReleaseNote... And the pros are more about compatibility than performance
reply
How have you found a SCO note, which never did nothing relevant for Java?

Here from Oracle, as historically taken from Sun documentation for JDK 1.1.

=> Many-to-Many Model (Java on Solaris--Native Threads)

https://docs.oracle.com/cd/E19455-01/806-3461/6jck06gqk/inde...

reply
I think there's a naming confusion here. You said "M:N threads, aka green threads". However, your linked document clarifies that "green threads" are the M:1 threads that "[do] not exploit multiprocessors" (see the "Green Threads" parenthetical in the first subheading). It is interesting that JDK 1.1 also had an M:N threading model, but that's not what people usually mean by green threads.
reply
I always understood it like that, however maybe it is on me, when reading this with more detail.
reply