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

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

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

作成日: 更新日:

基本的な使い方

freezeメソッドは、Thread::Queueオブジェクトの状態を凍結し、それ以降の変更を禁止するメソッドです。

このメソッドを呼び出すことで、キューオブジェクトは「凍結済み」の状態になります。一度凍結されたThread::Queueオブジェクトは、その内部状態を変更する一切の操作ができなくなります。具体的には、要素をキューに追加するpushメソッドや<<メソッド、あるいはキューから要素を取り出すpopメソッドやshiftメソッドなどを実行しようとすると、FrozenErrorが発生します。

freezeメソッドは、主にマルチスレッド環境において、Thread::Queueオブジェクトのデータ操作が特定の段階で完了し、それ以降は内容を変更されたくない場合に利用されます。これにより、複数のスレッドから参照されるキューオブジェクトに対して、意図しない変更が行われるのを防ぎ、プログラムの安定性とデータの整合性を高めることができます。凍結されたオブジェクトは、一度凍結すると変更可能な状態に戻すことはできませんので、利用する際には注意が必要です。オブジェクトのライフサイクルの中で、変更が不要になった段階でfreezeを使用することで、そのオブジェクトの状態を保証し、堅牢なシステム構築に貢献します。

構文(syntax)

1require 'thread'
2
3queue = Thread::Queue.new
4queue.freeze

引数(parameters)

引数なし

引数はありません

戻り値(return)

self

このメソッドは、レシーバーである Thread::Queue オブジェクト自身を返します。

関連コンテンツ