Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Thread::SizedQueue::empty?()メソッドの使い方

empty?メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

empty?メソッドは、RubyのThread::SizedQueueオブジェクトが現在空であるかどうかを判定するメソッドです。

Thread::SizedQueueは、複数のスレッド間でデータを安全にやり取りするための、要素数に上限があるキューを表すクラスです。たとえば、あるスレッドがデータを生成し、別のスレッドがそのデータを処理するといった、並列処理のシナリオで役立ちます。このキューは、指定されたサイズを超える要素を格納しようとすると、キューに空きができるまで、または要素を取り出すまで、追加しようとしたスレッドをブロックする特性を持っています。

empty?メソッドは、このThread::SizedQueueインスタンスに要素が一つも含まれていない場合にtrueを返し、一つでも要素が含まれている場合にfalseを返します。このメソッドは、キューから要素を取り出す前に、キューが空でないことを確認したい場合や、キューの処理がすべて完了したかどうかを判断したい場合などに特に有用です。Thread::SizedQueueのメソッドであるため、複数のスレッドから同時に呼び出されても、キューの状態を安全かつ正確に判定することができます。これにより、並行処理を行うプログラムにおいて、データの整合性を保ちながらキューの状態を効率的に管理することが可能になります。

構文(syntax)

1queue = Thread::SizedQueue.new(1)
2puts queue.empty?
3queue.push(1)
4puts queue.empty?

引数(parameters)

引数なし

引数はありません

戻り値(return)

Boolean

キューに要素が一つも格納されていない場合は true を、そうでない場合は false を返します。

関連コンテンツ