阅读有关Erlang的并发信息,使我想起了Akka并发工具包。两者都为您提供了预防或限制比赛条件的工具。但是您可以使用Akka工具包将可变数据的链接发送到其他进程,这仍然是不安全的。我认为Akka是一种有用的工具,但它不能防止对对象和数据的乱序访问,从而导致竞争情况,死锁和/或饥饿。它并不能阻止您以Java或C#保护您免于编写可以在C ++中编写的大多数类型的内存泄漏的方式编写不安全的代码(您仍然可以通过欺骗垃圾收集器来在Java中创建内存泄漏,但是这种情况较少而不是必须记住释放分配的每个字节)。
Erlang是否在并发编程中保证一定程度的正确性,性能和鲁棒性?我认为操作系统在访问系统资源时会提供保护(假设驱动程序编写者的工作做得很好)。ACID数据库为读取和更新提供保护。因此,这似乎是一个可解决的问题。还是通用安全解决方案会消除并发性带来的性能提升?其他语言或工具包是否提供Erlang提供(或不提供)的并发安全性?
这是@Malfist对@ user1249的回答的评论的后续问题,即哪种编程语言生成最少的难以发现的错误?。