分布式消息在D中传递?

时间:2010-08-12 20:25:55

标签: network-programming d

我非常喜欢D实现的消息传递原语。我只看到了一个消息传递程序中的例子。是否支持通过例如分发消息网络?

2 个答案:

答案 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的子类,有   特定的附加功能   进程内消息传递。