やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

組込ライブラリ(Thread::SizedQueue)

 サイズ指定Queue。

成果物

情報源

Thread::SizedQueue

サイズの最大値を指定できる Thread::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

メンバ抜粋

特異メソッド

new

インスタンスメソッド

<< close deq empty? enq length max max= pop push shift size

所感

 スレッド用のクラスが多すぎる。

対象環境

$ uname -a
Linux raspberrypi 5.10.52-v7l+ #1441 SMP Tue Aug 3 18:11:56 BST 2021 armv7l GNU/Linux