假设我创建了一个这样的线程:
thread = Thread.new do
loop do
puts "tick"
sleep(1)
end
end
如果在某个地方我希望这个线程停止这样做并执行 some_method(),我该怎么做?
假设我创建了一个这样的线程:
thread = Thread.new do
loop do
puts "tick"
sleep(1)
end
end
如果在某个地方我希望这个线程停止这样做并执行 some_method(),我该怎么做?
让另一个线程设置一个变量,这个线程检查它的值。该方法在此答案中进行了详细说明:sleep until condition is true in ruby
如果puts "tick"
没有必要,您可以改用条件变量。