Распределенная передача сообщений в D?

Мне действительно нравятся примитивы передачи сообщений, которые реализует D. Я видел только примеры передачи сообщений в рамках программы. Есть ли поддержка для распространения сообщений, например, по сети?

10
задан Jonathan M Davis 13 August 2010 в 00:41
поделиться

2 ответа

Функции передачи сообщений находятся в std.concurrency, который имеет дело только с потоками. Таким образом, тип передачи сообщений, используемый для передачи сообщений между потоками, предназначен только для потоков. В Phobos нет RMI или чего-то подобного. Это не значит, что мы никогда не получим что-то подобное в Phobos (в Phobos постоянно добавляется что-то новое), но сейчас этого не существует.

Есть, однако, модуль std.socket, который занимается общением с сокетами, что, очевидно, связано с сетью. Сам я его не использовал, но похоже, что он отправляет и получает void[]. Так что это не так приятно, как посылать неизменяемые объекты, как это делается с помощью std.concurrency, но это позволяет вам осуществлять сетевое взаимодействие через сокеты и, предположительно, гораздо более приятным способом, чем если бы вы использовали вызовы C напрямую.

5
ответ дан 4 December 2019 в 02:49
поделиться

Похоже, это было учтено. Из документации Phobos (нашел его через ответ Джонатана М. Дэвиса)

Это низкоуровневый API обмена сообщениями при какие более структурированные или ограничительные API могут быть построены. Общая идея такова что каждая сообщаемая сущность представлен обычным типом ручки (в этой реализации называется Cid), который позволяет отправлять сообщения на внутрипроцессные потоки, процессы на хосте, и процессы с иностранным хостом, использующие тот же интерфейс. Это важный аспект масштабируемости, потому что он позволяет компонентам программы распространяться по доступным ресурсам с небольшими изменениями или без изменений фактических выполнение.

Сейчас только внутрипроцессные потоки поддерживается и упоминается более специализированный дескриптор, называемый Tid. это фактически подкласс Cid, с дополнительные функции, характерные для внутрипроцессный обмен сообщениями.

2
ответ дан 4 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

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