我需要评估 if 条件,但我需要小心其他线程可能修改变量。
我的解决方案是
array.each do |anything|
if (mutex.synchronize do shared_var <= my_var end)
next
end
end
它似乎工作。if
但是语句检查到底是什么?那么这个其他代码呢?
array.each do |anything|
mutex.synchronize do
if shared_var <= my_var
next
end
end
end
它们是等价的吗?next
即使内部包含在互斥锁中,内部是否也能完成工作?为什么?
看看结构,我只展示了与我的问题相关的程序部分。