【问题标题】:Erlang-style concurrency in .NET or C++.NET 或 C++ 中的 Erlang 风格的并发
【发布时间】:2012-04-14 04:15:21
【问题描述】:

在众多项目之后,单向异步消息传递似乎是编写并发分布式网络服务并保持理智的唯一方法。

我正在寻找一个简单的、最好是开源的 .NET 或 C++ 库,它实现类似于 Erlang OTP 平台的异步消息传递概念。到目前为止,我只发现 RetLang 有点相似,但是

  1. 不支持网络消息传递,并且
  2. 好像被废弃了。

我还评估了 TPL、TPL DataFlow 和 RxLib。他们都不支持我正在寻找的东西。在 C++ 世界中,我只看了 Boost。

"Concise explanation of Erlang-style concurrency"

欢迎大家指点!

【问题讨论】:

  • 我不熟悉那个领域,所以也许我完全错了,但看起来你尝试在一个领域(erlang)中获取一些知识并尝试将它适应其他语言/框架,它是通常不是最佳方法。关于您的要求是什么以及您想要避免哪些事情的更通用的问题可能会有更多(或更好)的答案。
  • 那里的答案怎么样:stackoverflow.com/questions/22187/…
  • 您能准确列出您要查找的内容吗?为什么 TPL Dataflow 不符合您的需求?您可能想通过 WCF 查看 MSMQ。
  • 您在这里提出了几乎相同的问题:stackoverflow.com/q/9907309/78534。许多答案,但您甚至没有发表任何澄清评论。你确定你问对了吗?
  • 这个问题源于我之前提出的旧问题。没有什么可评论的,因为提议的选项都不是简单的 .net 库。 WCF 是使用 MSMQ 的怪物,这是我不愿意接受的外部依赖项。它甚至没有默认安装。 MSMQ 本身很慢,需要保姆,没有负载均衡等

标签: c# c++ multithreading concurrency erlang


【解决方案1】:

我们已经从头开始将 OTP.Net 重写为 NFX.Erlang 它带来了对 Erlang 类型、模式搜索和其他概念的原生支持 取自 Erlang -> .NET

看看 NFX.ServiceModel 和 NFX.Glue - 有很多你要问的好东西 并且我们的 lib 没有任何 3rd 方依赖项,它是

看看这个帖子: http://blog.aumcode.com/2013/10/nfx-native-interoperability-of-net-with.html

【讨论】:

  • 最新版本的 NFX.dll 在您使用时似乎没有 Erlang,因为您的教程建议在 LINQPad 中添加额外的命名空间导入,Erlang 没有显示在命名空间中?它被删除了吗?寻找将 C# 连接到 Erlang / Elixir genserver 的好例子,而不是 pheonix,只是简单的 genserver 基本示例?
【解决方案2】:

看看 0MQ,它有几乎所有语言的接口:

http://zguide.zeromq.org/page:all

【讨论】:

    【解决方案3】:

    你看过 C++ 的 MPI 吗?它似乎是我能想到的最接近您提供的描述的一个,即它产生具有不同内存空间的进程,这些内存空间通过消息传递进行合作。

    【讨论】:

    • 谢谢!我在类似的问题中看到过它。
    • @Serge:如果您有兴趣,还有一个 .NET 实现:osl.iu.edu/research/mpi.net
    猜你喜欢
    • 2010-09-06
    • 2011-04-30
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 2021-05-22
    • 2021-05-27
    • 1970-01-01
    • 2011-01-06
    相关资源
    最近更新 更多