Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Threadクラス > thread_variable_get
thread_variable_get(key) -> object | nil
[permalink][rdoc]引数 key で指定した名前のスレッドローカル変数を返します。
[注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と 異なり、Fiber を切り替えても同じ変数を返す事に注意してください。
例:
Thread.new { Thread.current.thread_variable_set("foo", "bar") # スレッドローカル Thread.current["foo"] = "bar" # Fiber ローカル Fiber.new { Fiber.yield [ Thread.current.thread_variable_get("foo"), # スレッドローカル Thread.current["foo"], # Fiber ローカル ] }.resume }.join.value # => ['bar', nil]
この例の "bar" は Thread#thread_variable_get により得られ た値で、nil はThread#[] により得られた値です。
[SEE_ALSO] Thread#thread_variable_set, Thread#[]
[SEE_ALSO] http://magazine.rubyist.net/?0041-200Special-note#l16