There is also
Quasar which brings CSP to the JVM. It solves the problem that the JVM does not have green threads through the use of fibers. Nested operations on channels are also possible as it makes use of continuations. It uses
this continuation implementation.
There is a little layer on top of it named
Wilco.kt which adds some abstractions so that things look almost the same as in Go. Wilco.kt is written in Kotlin (but Kotlin is also a JVM language like Java).
Here is the equivalent of the
pipeline sample from the Go blog. If you look at the subclasses og GoTest you see more Kotlin test cases where classic Go concurrency solutions are solved the same way in Quasar/Wilco.kt.
Note that continuations in Quasar rely on byte code manipulation (as all continuations libraries for the JVM). So when you run the samples you need set this VM option:
-javaagent:${PathToQuasarCore.jar}. Otherwise things won't work.
-- Haddock