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

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

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

作成日: 更新日:

基本的な使い方

popメソッドは、Thread::SizedQueueオブジェクトから要素を取り出すメソッドです。Thread::SizedQueueは、要素数に上限を持つスレッドセーフなキューであり、複数のスレッド間でデータを安全にやり取りする際に用いられます。このpopメソッドを呼び出すと、キューの先頭にある要素が一つ取り出され、その要素が戻り値として返されます。

キューが空の状態でpopメソッドが呼び出された場合、キューに新しい要素が追加されるまで、呼び出し元のスレッドは一時的に処理を停止し、ブロック状態となります。この仕組みは、スレッドがデータが利用可能になるのを効率的に待機し、無駄なCPUリソースの消費を防ぐために重要です。要素が追加されると、ブロックされていたスレッドは自動的に再開され、その要素を取り出して処理を続行します。

この機能は、データの生成と消費が異なるスレッドで行われるプロデューサー・コンシューマーモデルのような、並行処理のシナリオで特に有効です。Thread::SizedQueueのpopメソッドは、スレッド間のデータ連携をスムーズかつ安全に制御し、システム全体の安定性を高める上で不可欠な役割を果たします。

構文(syntax)

1queue = Thread::SizedQueue.new(1)
2element = queue.pop

引数(parameters)

timeout: nil

  • timeout: nil または秒数: キューから要素を取り出すのを待つ最大時間。nil の場合は無制限に待ちます。

戻り値(return)

Object

キューから要素を1つ取り出して返します。キューが空の場合は、要素が追加されるまでブロックして待機します。

関連コンテンツ