在Erlang中编程时,我可以忽略线程安全吗?

Ail*_*lyn 6 erlang functional-programming thread-safety

我刚刚开始学习线程安全性.这让我的代码更具防御性,也许过于防守.

使用像Erlang这样的函数式语言会让我完全摆脱这种担忧吗?

Jav*_*ier 17

在Erlang中,执行状态的单位不是一个线程,而是一个进程.是的,它是一种在线程之上实现的轻量级进程; 但它更像是一个过程而不是一个线程.

重点是流程不共享状态,传递消息; 线程默认共享所有内容,并且必须进行仲裁以避免混乱.

因此,您不需要线程安全,因为您不使用线程.

  • 但你确实需要"过程安全":) (2认同)

Oli*_*ves 5

哈维尔是对的.

但是,我想添加之前已经抓住我的东西.如果您正在使用内置驱动程序或nif,它可能不再是线程安全的.似乎很明显,因为驱动程序或nif将使用C或C++代码,但值得一提.因此,您不能完全忽略线程安全,因为您正在使用Erlang.