【发布时间】:2011-04-30 00:54:54
【问题描述】:
我认为 Erlang 风格的并发是核心数量呈指数增长的答案。你可以用其他主流语言来伪造它。但解决方案总是让我想要。我不愿意放弃多范式编程(C++/D)转而使用 Erlang 严苛的语法。
什么是 Erlang 风格的并发:
来自一位语言作者(What is Erlang's concurrency model actually ?):
- 轻量级并发。
创建线程成本低,维护疯狂数字成本低。 - 异步通信。
线程仅通过消息进行通信。 - 错误处理。
- 进程隔离。
或来自知情博主 (What is Erlang-Style Concurrency?):
- 快速创建/销毁进程
- 能够支持 >> 10 000 个并发进程,但特性基本保持不变。
- 快速异步消息传递。
- 复制消息传递语义(无共享并发)。
- 过程监控。
- 选择性消息接收。
我认为D's message passing 可以完成大部分这些功能。我想知道的是“>>10,000 个并发进程(线程)”和“快速进程创建/销毁”。
D 处理这些要求的能力如何?
我认为要正确支持它们,您必须使用green threads。 D的消息传递特性可以和绿色线程库一起使用吗?
【问题讨论】:
-
在 Rust 中。 Rust 具有消息传递、模式匹配和绿色线程,允许大量并发任务/进程。它也有一些类型的通道(类似于 Go)。
标签: concurrency erlang d