Подтвердить что ты не робот

Распространенное сообщение, проходящее в D?

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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