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

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

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

作成日: 更新日:

基本的な使い方

max=メソッドは、Thread::SizedQueueオブジェクトが保持できる要素の最大数を設定するメソッドです。Thread::SizedQueueは、複数のスレッド間でデータを安全にやり取りするために設計されたキューで、その名の通り格納できる要素の数に上限を設けることができます。

このmax=メソッドを使用すると、キューの容量を動的に変更することが可能です。例えば、queue.max = 10と設定することで、そのキューには最大で10個の要素しか格納できないようになります。キューがこの最大数に達している状態で、さらに要素を追加しようとする操作(pushメソッドなど)は、キューに空きができるまで自動的にブロックされます。これにより、キューが過剰なデータで溢れることを防ぎ、システムのリソース消費を適切に制御できます。

設定する値は非負の整数である必要があります。もし、max=メソッドで新しく設定する最大数が、現在のキューに含まれる要素の数よりも小さい場合、キューのサイズは新しい最大数に変更されますが、既存の要素が自動的に削除されることはありません。この状態では、キューが既に新しい最大数に達しているとみなされるため、要素がpopされるなどして取り除かれるまで、新たな要素を追加することはできません。この機能は、スレッド間のデータフローを効率的に管理し、システム全体の安定性を高めるために利用されます。

構文(syntax)

1queue = Thread::SizedQueue.new(1)
2queue.max = 5

引数(parameters)

req

  • req: スレッドセーフキューの最大サイズを指定する整数

戻り値(return)

Integer

Thread::SizedQueue#max= メソッドは、キューの最大サイズを設定します。このメソッドの戻り値は、設定された最大サイズを表す Integer です。

関連コンテンツ