サイズの最大値を指定できる Queue です。
[ruby-list:283]より。q をサイズ 1 の SizedQueue オブジェクトに
することによって、入力される行と出力される行が同じ順序になります。
q = [] にすると入力と違った順序で行が出力されます。
require 'thread'
q = SizedQueue.new(1)
th = Thread.start {
while line = q.pop
print line
end
}
while l = gets
q.push(l)
end
q.push(l)
th.join
SizedQueue.new(max)SizedQueue オブジェクトを生成します。 max は queue のサイズの最大値です。