标签: ruby-on-rails ruby multithreading
我正在考虑使用Sidekiq,一个用Ruby编写的异步作业处理队列,它使用线程运行其作业。
由于MRI和GIL,开发人员倾向于远离在Ruby中编写多线程代码,这就是为什么在Ruby中没有编写很多关于线程安全代码的原因。
某些常见的日常模式(如result ||= something.call没有周围的互斥锁)不是线程安全的。所以我的问题是什么是其他简单的日常Ruby代码,它们不是线程安全的?
result ||= something.call