Concurrency Erlang在并发性方面如何优于其他语言?

Concurrency Erlang在并发性方面如何优于其他语言?,concurrency,erlang,programming-languages,Concurrency,Erlang,Programming Languages,我不明白为什么erlang本身具有很好的并发性 如果我们做一些技巧,是否还有其他语言,比如C#可以像erlang一样伟大 或者它是大多数语言所没有的erlang的非常特殊的语言特性 我们能把C写得像erlang吗?erlang的一个主要特性是它是从头开始构建的,是一种并发语言。Erlang在单个虚拟机中支持数十万个轻量级进程。因为Erlang的进程完全独立于操作系统进程,所以它们非常轻量级,每个进程的开销很低。因此,当使用Erlang进行面向并发的编程时,您可以获得很多现成的优势 快速创建/销

我不明白为什么erlang本身具有很好的并发性

如果我们做一些技巧,是否还有其他语言,比如C#可以像erlang一样伟大

或者它是大多数语言所没有的erlang的非常特殊的语言特性


我们能把C写得像erlang吗?

erlang的一个主要特性是它是从头开始构建的,是一种并发语言。Erlang在单个虚拟机中支持数十万个轻量级进程。因为Erlang的进程完全独立于操作系统进程,所以它们非常轻量级,每个进程的开销很低。因此,当使用Erlang进行面向并发的编程时,您可以获得很多现成的优势

  • 快速创建/销毁进程
  • 能够支持数百万个特征基本不变的并发进程
  • 快速异步消息传递
  • 复制消息传递语义(不共享任何并发)
  • 过程监测
  • 选择性信息接收

这种Erlang风格的并发性在C中并非不可能做到,但很难做到。有关Erlang风格并发性的更多信息,请阅读

,因此不适合提出此类问题。你可以在网上找到许多关于这个话题的辩论和演讲。假设Erlang提出了一个并发模型并在本地实现。@Jarroderson:几乎所有高级语言都是用C实现的,但这并不意味着你可以使用C中的所有高级功能。Erlang中的轻量级进程实现有二十年的开发、经验和独创性。如果您在C中尝试,您将得到Erlang的一半的易于出错的实现。简言之,你错了。所以只有《二郎记》的作者才能“正确”,我高度尊重你对《二郎记》的看法,但我认为这只是FUD。诚然,如果你不知道自己在做什么,你就会失败,但如果你理解这个问题,这是完全可行的,正如Erlang的作者所证明的那样。C作为C++的“高级”预处理器开始,简单的Google显示,在C语言和其他语言中,有很多工作都是轻量级的,甚至在爪哇。简言之,“如果你在C语言中尝试它,你将得到Erlang的一半易于出错的实现。”你是在推广FUD吗?这并不是说只有Erlang的作者才能“正确”实现它只是Erlang是少数几个并发性和容错性从下到上都是基础的语言之一,以后不再作为库添加。这会影响实现中的所有内容。