How would you do that in Java given that you can't reify the stack?
Erjang is using Kilim (http://www.malhar.net/sriram/kilim/) which does bytecode rewriting to support coroutines (kind of green threads) on top of JVM. With Java 8, we're rumored to get coroutines in the JVM.