<分区>
我已经看到这个运算符被使用了很多次,我什至每次有变化时都会使用它。所有很酷的 gem 都有这种代码的和平。但是使用此运算符时线程安全性如何?
<分区>
我已经看到这个运算符被使用了很多次,我什至每次有变化时都会使用它。所有很酷的 gem 都有这种代码的和平。但是使用此运算符时线程安全性如何?
最佳答案
与任何其他赋值一样,没有互斥锁就不是真正的线程安全。根据您系统中的内核数量,它可能看起来是线程安全的ish。我注意到 4 核/8 线程系统比 2 核/2 线程系统在多线程方面有更多问题,所以如果您可以访问其中之一,请使用它来确保您已经找到您正在尝试的任何解决方案。
写锁可能是一件麻烦事,但这是您生活在多线程世界中所付出的代价。
关于Ruby ||= 运算符线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13853318/