首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Erlang编程时,我可以忽略线程安全吗?

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

Stack Overflow用户
提问于 2010-08-19 16:45:39
回答 5查看 958关注 0票数 7

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

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-19 17:08:41

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

主要的一点是,进程不共享状态,它们传递消息;而线程默认共享所有内容,并且必须进行仲裁以避免混乱。

因此,您不需要线程安全,因为您没有使用线程。

票数 18
EN

Stack Overflow用户

发布于 2010-08-19 19:10:07

哈维尔是对的。

然而,我只想补充一些东西,因为它已经抓住了我。如果您正在使用内置驱动程序或nif,它可能不再是线程安全的。这似乎很明显,因为驱动程序或nif将使用C或C++代码,但值得一提的是。因此,您不能仅仅因为使用Erlang而完全忽略线程安全。

票数 6
EN

Stack Overflow用户

发布于 2010-08-20 07:47:17

不是的。见二郎风格的演员都是关于锁定的。在函数式语言中实现线程安全要容易得多,但您确实需要考虑它。

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

请注意,在这种情况下,很有可能你还是搞错了。共享-所有并发性都是,除了大多数琐碎的例子之外,很难在任何事情上得到正确的

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3524088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档