Network programming 分布式消息传递?
我非常喜欢D实现的消息传递原语。不过,我只看到在程序中传递消息的例子。是否支持在网络上分发消息?消息传递函数采用std.concurrency,它只处理线程。因此,用于在线程之间传递消息的消息传递类型仅适用于线程。在火卫一中没有类似的东西。这并不是说我们永远不会在火卫一中得到这样的东西(火卫一一直都在添加东西),但它现在并不存在Network programming 分布式消息传递?,network-programming,d,Network Programming,D,我非常喜欢D实现的消息传递原语。不过,我只看到在程序中传递消息的例子。是否支持在网络上分发消息?消息传递函数采用std.concurrency,它只处理线程。因此,用于在线程之间传递消息的消息传递类型仅适用于线程。在火卫一中没有类似的东西。这并不是说我们永远不会在火卫一中得到这样的东西(火卫一一直都在添加东西),但它现在并不存在 然而,std.socket模块处理与套接字的对话,这显然与网络有关。我自己没有使用过它,但它看起来像是发送和接收void[]。因此,它不像std.concurrency
然而,std.socket模块处理与套接字的对话,这显然与网络有关。我自己没有使用过它,但它看起来像是发送和接收
void[]
。因此,它不像std.concurrency那样发送不可变的对象,但它确实允许您通过套接字进行网络通信,而且可能比直接使用C调用的方式好得多。似乎已经考虑到了这一点。(通过Jonathan M Davis的答案找到)
这是一个低级别的消息传递API
哪一个更结构化或更严格
可以构建API。总的想法是
每个可发送消息的实体都是
由公共句柄类型表示
(在本实施中称为Cid),
允许将消息发送到
进程内线程,在主机进程上,
和使用
相同的接口。这是一个重要的问题
可伸缩性方面,因为它
允许程序的组件
分布在可用资源中
对实际数据几乎没有变化
实施
目前,只支持进程内线程
由更多的
称为Tid的专用句柄。它是
实际上是Cid的一个子类,具有
特定于
进程内消息传递
目前std.concurrency只处理线程,但我的理解是,当Sean有时间时,他将实现交叉处理/网络共享。穿线是用来把结构拆下来的,而肖恩还没来得及完成。太好了。如果这工作顺利,它确实是一个潜在的杀手功能。我想知道序列化将如何工作。。。