跳转到内容

Ruby 编程/参考/对象/线程/标准库/互斥锁

来自维基教科书,自由的教科书

互斥锁

[编辑 | 编辑源代码]

Mutex 类(可通过 require 'thread' 加载)是一种确保特定块并发性的方法。

等待超时

[编辑 | 编辑源代码]

您可以在 1.9.2(或 jruby)中像这样超时等待

require 'thread'
a = Mutex.new
b = ConditionVariable.new
a.synchronize {
 a.wait(b, 3) # timeout after 3 secs
}

在 1.8 非 jruby 中,您可以使用 timeout 库,例如

require 'thread'
require 'timeout'
a = Mutex.new
b = ConditionVariable.new

begin
Timeout::timeout(3) {
  a.synchronize {
    a.wait(b)
  }
}
rescue Timeout::Error
 # timed out
end

教程

华夏公益教科书