我非常喜欢D实现的消息传递原语。我只看到了一个消息传递在程序中的例子。是否支持通过例如分发消息网络?
答案 0 :(得分:5)
消息传递函数是std.concurrency,它只处理线程。因此,用于在线程之间传递消息的消息传递类型仅用于线程。在Phobos中没有RMI或类似的东西。这并不是说我们永远不会在Phobos中得到类似的东西(东西一直被添加到Phobos中),但它现在还不存在。
然而,有一个std.socket模块处理与套接字的交谈,这显然与网络有关。我自己没有使用它,但看起来它发送和接收void[]
。因此,它不像使用std.concurrency那样发送不可变对象,但它确实允许你通过套接字进行网络通信,并且可能比你直接使用C调用的方式更好。
答案 1 :(得分:2)
似乎已经考虑过了。来自Phobos documentation(通过Jonathan M Davis回答)
这是一个低级消息传递API 更具结构性或限制性 可以构建API。一般的想法是 每个可消息的实体都是 由通用句柄类型表示 (在此实现中称为Cid), 允许发送消息 进程内线程,主机进程, 和使用的外部主机进程 相同的界面。这很重要 因为它可扩展性方面 允许程序的组件 分散在可用资源上 几乎没有改变实际 实施
现在,只有进程内线程 支持和引用更多 专门的句柄称为Tid。它是 实际上是Cid的子类,有 特定的附加功能 进程内消息传递。