为什么多线程环境被认为是有害的?

Pie*_*ten 0 multithreading state

我理解如果一个人使用了很多范围广泛的状态,这是一个坏主意但是不可变计算和高度本地化的副作用呢?

Kev*_*ose 7

调试多线程代码很难.真的很难.

虽然减轻状态,并且正确的设计可以减少这种困难,但仍然比调试单线程代码困难得多.

因此,多线程的多线程是一种设计病理.

话虽如此,有很多情况下使用> 1线程是正确的决定.


dan*_*ben 5

为了过度简化,Erlang和Haskell等函数式语言围绕着这样的概念构建,即多线程应用程序在消除副作用时非常安全.你应该读一读这些.此外,通常,没有共享状态的多线程应用程序是非常安全的.

http://en.wikipedia.org/wiki/Haskell_%28programming_language%29

http://en.wikipedia.org/wiki/Erlang_%28programming_language%29