【发布时间】:2010-08-12 20:25:55
【问题描述】:
我真的很喜欢 D 实现的消息传递原语。不过,我只看到了在程序中传递消息的示例。是否支持通过例如分发消息?网络?
【问题讨论】:
标签: network-programming d
我真的很喜欢 D 实现的消息传递原语。不过,我只看到了在程序中传递消息的示例。是否支持通过例如分发消息?网络?
【问题讨论】:
标签: network-programming d
消息传递函数在 std.concurrency 中,它只处理线程。因此,用于在线程之间传递消息的消息传递类型仅适用于线程。 Phobos 中没有 RMI 或类似的东西。这并不是说我们永远不会在 Phobos 中获得类似的东西(一直在向 Phobos 添加东西),但它现在不存在。
然而,std.socket 模块处理与套接字的通信,这显然与网络相关。我自己没有使用过,但它看起来像发送和接收void[]。因此,它不像使用 std.concurrency 那样发送不可变对象那么好,但它确实允许您通过套接字进行网络通信,并且可能以比直接使用 C 调用更好的方式进行。
【讨论】:
似乎已经考虑到这一点。来自Phobos documentation(通过 Jonathan M Davis 的答案找到)
这是一个底层的消息传递 API 哪个更结构化或限制性更强 可以构建 API。总体思路是 每个可发送消息的实体都是 由通用句柄类型表示 (在此实现中称为 Cid), 允许将消息发送到 进程内线程,主机上的进程, 和外部主机进程使用 相同的界面。这是一个重要的 可扩展性方面,因为它 允许程序的组件 分布在可用资源中 与实际几乎没有变化 实施。
目前,只有进程内线程 被更多人支持和引用 称为 Tid 的专用句柄。这是 实际上是 Cid 的一个子类,具有 特定于的附加功能 进程内消息传递。
【讨论】: