Ruby ||= 运算符线程安全

标签 ruby multithreading thread-safety

<分区>

我已经看到这个运算符被使用了很多次,我什至每次有变化时都会使用它。所有很酷的 gem 都有这种代码的和平。但是使用此运算符时线程安全性如何?

最佳答案

与任何其他赋值一样,没有互斥锁就不是真正的线程安全。根据您系统中的内核数量,它可能看起来是线程安全的ish。我注意到 4 核/8 线程系统比 2 核/2 线程系统在多线程方面有更多问题,所以如果您可以访问其中之一,请使用它来确保您已经找到您正在尝试的任何解决方案。

写锁可能是一件麻烦事,但这是您生活在多线程世界中所付出的代价。

关于Ruby ||= 运算符线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13853318/

相关文章:

c++ - 共享资源的最快多读取器/单个写入器保护 - C++

ruby-on-rails - 在 Rails 中通过 ajax 渲染 Ancestry 嵌套评论的回复表单

ruby-on-rails - Demeter 定律是否也适用于标准的 ActiveRecord 对象方法?

Python 线程挂起并且不关闭

java - 锁定与直接更新

php - Magento 是线程安全的吗?

ruby - 如何检索数组中字母的字符串值?

ruby - 从命令行更容易使用 ruby​​gems?

java - 是否有 != 值的compareAndSet (compareAndSetIfUnequal)?

java - 方法 wait() 和 notifyAll() 不是静态的