I was reading this informative page on Green Thread (Wikipedia) and I wonder: what other programming systems rely on "green processes" beside Erlang?
Edit: " Green Thread != Green Process "
Green Process based
- Erlang
- Inferno
Green Thread based
- Go
Native Process based
- C, C++
Updated: Nobody answered the question directly and so I have accepted an answer that provided me with more information with regards to Green Processes in general.
Now, there is also Rust (see rust-lang.org) which has a module for N:M threads and one for kernel threads.
Regarding the whole "green thread" as a name, see comments on this post:
I wish we could use the terminology from operating systems instead, e.g. user-space vs kernel scheduling of threads. After all, it is an operating system level distinction. The name "green thread" is only Java history.
As I understand it, these "green processes" are in fact not fundamentally different from green threads. The lack of shared state results from the language design, not from any technolgical or huge conceptual difference. Erlang simply:
Thus, there is no way for two processes to access the same memory, even though they might have shared virtual memory on the OS level (which I guess makes Erlang easier to implement on architectures that don't have OS-level threads).
Java used them until 1.2.. then they realized that having a lighter thread that is scheduled twice wasn't so efficient.