Though as the Node people occasionally point out, it is advantageous to have this sort of thing baked into the language, so that everything done in the language supports the concepts, rather than having a relatively small corner support it. Plus you get Go, instead of Java, which I for one would find an improvement.
The Java language specification does not require the use of OS threads for Java threads.
It all depends which JVM you refer to.
The JVMs that make use of green threads follow a similar threading model to Go.
Don't mix languages with implementations.
http://msdn.microsoft.com/en-us/library/vstudio/hh191443.asp...
TPL(Task parallel library) does use additional threads, and that's a different programming model.
The async/await model in C# is essentially from F#'s async workflows: