1

这是一个示例程序:

def worker(from, to)
  puts "#{from}..#{to}"

  for i in from..to do
    if i == 42
      puts "kill the rest of the threads"
      break;
    end
    puts i
    sleep 1
  end
end

if __FILE__ == $0
  threads = []
  for i in 0..9 do
    threads << Thread.new { worker(i*10, i*10+10) }
  end

  threads.each { |thread| thread.join }
end

当其中一个线程找到答案时(在本例中为 42),我希望所有线程都停止。我不确定这个概念叫什么,这就是为什么我无法搜索它。

我很感激帮助:)

4

1 回答 1

1

您需要一个共享线程变量来指示线程是否已找到答案并由线程通过互斥锁访问。

于 2010-02-04T11:46:51.860 回答