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