thread_variable_set(key, value)Ruby 2.0.0 から[permalink][rdoc][edit](untyped key, untyped value) → untyped-
引数 key で指定した名前のスレッドローカル変数に引数 value をセットします。
[注意]: Thread#[] でセットしたローカル変数(Fiber ローカル変数)と異なり、セットした変数は Fiber を切り替えても共通で使える事に注意してください。
例thr = Thread.new do Thread.current.thread_variable_set(:cat, 'meow') Thread.current.thread_variable_set("dog", 'woof') end p thr.join # => #<Thread:0x401b3f10 dead> p thr.thread_variables # => [:cat, :dog]Ruby 4.1 から、value に
nil を指定して削除する例nilを指定すると、その名前のスレッドローカル変数自体が削除されます。削除した変数は Thread#thread_variables の結果に含まれなくなります。返り値は指定した value(nil)です。th = Thread.current th.thread_variable_set(:x, 1) p th.thread_variables # => [:x] th.thread_variable_set(:x, nil) p th.thread_variable?(:x) # => false p th.thread_variables # => [] p th.thread_variable_get(:x) # => nil[SEE_ALSO] Thread#thread_variable_get, Thread#thread_variables, Thread#[]