Что другие системы около Erlang основаны “на Зеленых Процессах”?

Я читал эту информативную страницу на Зеленом Потоке (Википедия) и интересно: что другие системы программирования полагаются "на зеленые процессы" около Erlang?

Править: "Зеленый поток! = Зеленый процесс"

Зеленый Процесс базирующимся

  • Erlang
  • Ад

Зеленый Поток базирующимся

  • Искать

Собственный Процесс базирующимся

  • C, C++

Обновленный: Никто не ответил на вопрос непосредственно и таким образом, я принял ответ, который предоставил мне больше информации относительно Зеленых Процессов в целом.

5
задан Jonas 26 April 2010 в 19:48
поделиться

3 ответа

Что касается всей «зеленой ветки» как имени, см. комментарии к этому сообщению :

Если серьезно, я удивлен, что вы используете термин из лагерь Java вместо чего-то менее жаргонного, вроде «совместной работы с потоками в пользовательском пространстве»; Хороший парень Питер ван дер Линден объясняет происхождение этого термина:

Когда Java 1.0 впервые вышла на Solaris, в ней не использовалась собственная библиотека Solaris libthread.so для поддержки потоков. Вместо этого он использовал поддержку потоков среды выполнения, которая была написана на Java для более раннего проекта под кодовым названием «Green». Эта библиотека потоков стала известна как «зеленые потоки»

. Я бы хотел, чтобы вместо этого мы могли использовать терминологию из операционных систем, например, планирование потоков в пространстве пользователя или ядре. В конце концов, это различие на уровне операционной системы. Имя "

3
ответ дан 14 December 2019 в 13:38
поделиться

Java использовала их до версии 1.2 ... затем они поняли, что наличие более легкого потока, запланированного дважды, не так эффективно.

1
ответ дан 14 December 2019 в 13:38
поделиться

Насколько я понимаю, эти «зеленые процессы» на самом деле принципиально не отличаются от зеленых потоков. Отсутствие общего состояния является результатом языкового дизайна, а не каких-либо технологических или огромных концептуальных различий. Erlang просто:

  • Не имеет каких-либо глобальных переменных, которые были бы доступны из нескольких процессов
  • Разрешает связь между процессами только через явные сообщения
  • Неявно копирует параметры сообщения (большой недостаток этого метода)

Таким образом, у двух процессов нет возможности получить доступ к одной и той же памяти, даже если они могут иметь общую виртуальную память на уровне ОС (что, как я полагаю, упрощает реализацию Erlang на архитектурах, не имеющих потоков на уровне ОС).

2
ответ дан 14 December 2019 в 13:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: