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

【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 を返します。

関連コンテンツ

関連プログラミング言語