Ruby 4.0 リファレンスマニュアル

instance method Thread::SizedQueue#<<

push(obj, non_block = false, timeout: nil) -> self | nilRuby 2.1.0 から[permalink][rdoc][edit]
enq(obj, non_block = false, timeout: nil) -> self | nil
self << obj -> ()
(Elem obj, ?boolish non_block) → void
(Elem obj, timeout: _ToF?) → self?

キューに与えられたオブジェクトを追加します。

キューのサイズが Thread::SizedQueue#max に達している場合は、 non_block が真でなければ、キューのサイズが Thread::SizedQueue#max より小さくなるまで他のスレッドに実行を譲ります。その後、キューに与えられたオブジェクトを追加します。

timeout を指定した場合は、その秒数が経過してもキューが一杯のままであれば、オブジェクトを追加せずに nil を返します。追加できたときは self を返します。

[PARAM] obj:
キューに追加したいオブジェクトを指定します。
[PARAM] non_block:
true を与えると、キューが一杯の時に例外 ThreadError が発生します。
[PARAM] timeout:
待つ秒数を数値で指定します。nil の場合は無期限に待ちます。non_block が真のときに指定することはできません。
[EXCEPTION] ArgumentError:
non_block が真のときに timeout を指定した場合に発生します。

使用例は Thread::SizedQueue/例 を参照してください。

[SEE_ALSO] Thread::Queue#push