push(obj, non_block = false, timeout: nil) -> self | nilRuby 2.1.0 から[permalink][rdoc][edit]enq(obj, non_block = false, timeout: nil) -> self | nilself << 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
- [PARAM]