【Ruby3.x】Thread::thread_variables()メソッドの使い方
thread_variablesメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『thread_variablesメソッドは、呼び出し元のThreadオブジェクトに設定されているスレッド固有変数の名前のリストを返すメソッドです。Rubyのマルチスレッド環境では、それぞれのスレッドが独立した実行の流れを持ちます。Thread.current[:key] = value の形式を使うことで、各スレッドに固有の情報を紐付けて保存することができます。このような、スレッドごとに個別の値を保持する変数を「スレッド固有変数」と呼びます。
このthread_variablesメソッドは、対象のスレッドに現在登録されているすべてのスレッド固有変数の名前をシンボルの配列として提供します。例えば、あるスレッドが :user_id や :request_id といった情報を保持している場合、このメソッドはそのスレッドに対して [:user_id, :request_id] のような配列を返します。これにより、開発者は実行中のスレッドがどのような状態やデータを独自に管理しているかを把握し、デバッグやスレッドの状態管理を行う際に活用できます。返されるのは変数の値そのものではなく、設定されている変数の「名前」(キー)だけである点にご留意ください。』
構文(syntax)
1Thread.current[:example_var] = 123 2p Thread.current.thread_variables
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array<Symbol>
このメソッドは、現在のスレッドで定義されているスレッドローカル変数(スレッド変数)の名前をシンボル(:シンボル名)の配列として返します。