我们可以在Ruby上分配一个线程局部变量,如下所示:
Thread.current[:foo] = 1
Thread.current[:bar] = 2
但是我们如何在以后列出/枚举这些变量?
答案 0 :(得分:6)
您可以使用Thread#keys
获取密钥:
Thread.current[:foo] = 1
Thread.current[:bar] = 2
Thread.current.keys # => [:__recursive_key__, :foo, :bar]
不知道这有多大帮助,因为你应该知道你使用了哪些键。
答案 1 :(得分:0)
Thread.list.each { |t|
p "T #{t.object_id} tvars:#{t.thread_variables.length} numkeys:#{t.keys.length}"
}