当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Thread.thread_variable_get用法及代码示例


本文简要介绍ruby语言中 Thread.thread_variable_get 的用法。

用法

thread_variable_get(key) → obj or nil

返回已设置的线程局部变量的值。请注意,这些值与光纤本地值不同。有关光纤本地值,请参阅 Thread#[] Thread#[]=

Thread 局部值随线程一起携带,不尊重光纤。例如:

Thread.new {
  Thread.current.thread_variable_set("foo", "bar") # set a thread local
  Thread.current["foo"] = "bar"                    # set a fiber local

  Fiber.new {
    Fiber.yield [
      Thread.current.thread_variable_get("foo"), # get the thread local
      Thread.current["foo"],                     # get the fiber local
    ]
  }.resume
}.join.value # => ['bar', nil]

为线程本地返回值“bar”,其中为光纤本地返回 nil。纤程在同一个线程中执行,因此线程局部值可用。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Thread.thread_variable_get。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。