【Ruby3.x】Thread::thread_variable_get()メソッドの使い方
thread_variable_getメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
thread_variable_getメソッドは、現在のスレッドに固有のデータを取得するために使用されるメソッドです。
プログラムが複数の処理を同時に実行する際、それぞれの処理(スレッド)が他のスレッドとは独立した独自のデータを保持したい場合があります。このような目的のために「スレッドローカル変数」という仕組みが提供されており、thread_variable_getメソッドはこのスレッドローカル変数にアクセスするために利用されます。
このメソッドは、引数として変数の名前を文字列またはシンボルで受け取ります。そして、現在のスレッドに対してその名前で設定されている値を返します。もし指定された名前のスレッドローカル変数が現在のスレッドに設定されていない場合は、戻り値としてnilが返されます。
スレッドローカル変数は、マルチスレッド環境において、各スレッドが他のスレッドの状態に影響を与えることなく、個別の状態やデータを安全に管理するために非常に重要な機能です。thread_variable_getメソッドは、設定されたこれらの個別のデータを必要な時に正確に取得する役割を担っています。
構文(syntax)
1# 新しいスレッドを作成し、スレッドローカル変数を設定 2my_thread = Thread.new do 3 Thread.current.thread_variable_set(:my_key, "スレッド専用の値") 4end 5 6# スレッドが処理を終えるまで待つ 7my_thread.join 8 9# 作成したスレッドのインスタンスから、スレッドローカル変数の値を取得する 10value = my_thread.thread_variable_get(:my_key) 11 12# 取得した値を出力 13puts value
引数(parameters)
key
- key: 取得したいスレッド変数のキー
戻り値(return)
Object
スレッドローカル変数として格納されているオブジェクトを取得します。指定したキーに対応する値が存在しない場合は nil を返します。