并发编程技术,优点,缺点

20 .net java concurrency erlang

至少有三种众所周知的创建并发应用程序的方法:

  1. 通过锁定进行多线程和内存同步(.NET,Java).软件事务内存(链接文本)是另一种同步方法.

  2. 异步消息传递(Erlang).

我想了解是否有其他方法,并讨论应用于大型分布式应用程序的这些方法的各种优缺点.我主要关注的是简化程序员的生活.

例如,在我看来,当它们之间没有依赖关系时,使用多个线程很容易,这是非常罕见的.在所有其他情况下,线程同步代码变得非常麻烦,难以调试和推理.

mik*_*era 8

我强烈建议看看Rich Hickey的演讲.它描述了构建高性能并发应用程序的方法,我认为这与基于锁定或消息传递的设计不同.

基本上它强调:

  • 锁定免费的多线程并发应用程序
  • 不可变的持久数据结构
  • 软件事务内存处理的状态更改

并讨论这些原则如何影响Clojure语言的设计.


Fré*_*idi 5

阅读Herb Sutter有效并发专栏,你也会受到启发.