我有一个 Puma 服务器,配置为使用两个工作线程,每个工作线程有 16 个线程。并config.threadsafe!禁用允许使用 puma 的线程。
现在我有一个代码,我怀疑它没有使用线程安全,即使我已经Mutex在其中用作常量。我希望这段代码一次仅由一个 puma 线程执行,以避免并发问题,并使用Mutex它。
现在,我的问题是,
Mutex在多个工作人员上使用 puma 线程时是否可以注入线程安全?据我了解,工作线程是一个单独的进程,因此互斥锁不起作用。代码示例
class MyService
...
MUTEX = Mutex.new
...
def initialize
...
end
def doTask
MUTEX.synchronize do
...
end
end
end
Run Code Online (Sandbox Code Playgroud)