thread_variable_get(key) -> object | nil
[permalink][rdoc][edit]-
引数 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] https://magazine.rubyist.net/articles/0041/0041-200Special-note.html