Насколько я понимаю, эти "зеленые процессы" на самом деле принципиально не отличаются от зеленых нитей. Отсутствие общего состояния является результатом языкового дизайна, а не каких-либо технологических или огромных концептуальных различий. Эрланг просто:
- Не имеет каких-либо глобальных переменных, которые были бы доступны из нескольких процессов
- Разрешает связь между процессами только через явные сообщения
- Неявно копирует параметры сообщения (большой недостаток этой техники)
Таким образом, два процесса не могут получить доступ к одной и той же памяти, даже если они имеют общую виртуальную память на уровне ОС (что, я думаю, упрощает реализацию Erlang на архитектурах, в которых нет потоков на уровне ОС ).