4

我们可以在 Ruby 上分配一个线程局部变量,如下所示:

Thread.current[:foo] = 1
Thread.current[:bar] = 2

但是我们以后如何列出/枚举这些变量呢?

4

2 回答 2

7

您可以使用以下方法获取密钥Thread#keys

Thread.current[:foo] = 1
Thread.current[:bar] = 2
Thread.current.keys  # => [:__recursive_key__, :foo, :bar]

不过不知道这有什么帮助,因为您应该知道您使用哪些键。

于 2012-08-20T22:44:34.097 回答
0
 Thread.list.each { |t|
   p "T #{t.object_id} tvars:#{t.thread_variables.length} numkeys:#{t.keys.length}"
 }
于 2015-01-09T22:01:04.273 回答