http://d.hatena.ne.jp/troter/20070313/1173802900 - troterの日記 - [Ruby] マルチスレッド難しい
Threadを一つ使うとQueueでもこんな風に書けそう。
require 'thread' class LocalBarrier def initialize(n) @done = Queue.new @keeper = begin_keeper(n) end def sync @done.push(true) @keeper.join end private def begin_keeper(n) Thread.start do n.times do @done.pop end end end end