Я думаю, что стиль Erlang concurrency является ответом на экспоненциальный рост количества ядер. Вы можете подделать его с другими языками основного потока. Но решения всегда оставляют меня желать. Я не хочу отказаться от программирования с несколькими парадигмами (С++/D), чтобы переключиться на синтаксис Erlang draconian.
Что такое стиль Erlang concurrency:
От одного из авторов языка (Что такое модель Erlang concurrency на самом деле?):
- Легкий concurrency.
Дешево создавать темы и дешево поддерживать безумные номера. - Асинхронная связь.
Потоки только обмениваются сообщениями. - Обработка ошибок.
- Изоляция процесса.
Или из информированного блоггера (Что такое стиль Erlang Concurrency?):
- Быстрое создание/уничтожение процесса
- Возможность поддерживать → 10 000 одновременных процессов с практически неизменными характеристиками.
- Быстрая передача асинхронных сообщений.
- Копирование семантики передачи сообщений (share-nothing concurrency).
- Мониторинг процесса.
- Выборочный прием сообщений.
Я думаю, что передача сообщений D может выполнить большинство этих функций. Те, о которых я задумываюсь, являются " → 10000 одновременных процессов (потоков)" и "быстрое создание/уничтожение процесса".
Насколько хорошо D справляется с этими требованиями?
Я думаю, что для правильной поддержки их вам нужно будет использовать зеленые темы. Можно ли использовать функции передачи сообщений D с помощью библиотеки зеленых потоков?