小智 9
这是一个宝石,可能提供你需要的东西(从这里链接).代码干净而紧凑,足以快速理解(它基本上是一个Mutex,正如其他人所建议的那样),如果你想编写自己的Mutex包装器,它应该给你一个很好的起点.
来自github的一个轻微修改的例子:
require 'atomic'
my_atomic = Atomic.new('')
# set method 1:
my_atomic.update { |v| v + 'hello' }
# set method 2:
begin
my_atomic.try_update { |v| v + 'world' }
rescue Atomic::ConcurrentUpdateError => cue
# deal with it (retry, propagate, etc)
end
# access with:
puts my_atomic.value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3414 次 |
| 最近记录: |