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


Ruby Fiber.new用法及代码示例


本文简要介绍ruby语言中 Fiber.new 的用法。

用法

new(blocking: false) { |*args| ... } → fiber

创建新的 Fiber 。最初,光纤没有运行,可以使用 resume 恢复。第一个 resume 调用的参数将传递给块:

f = Fiber.new do |initial|
   current = initial
   loop do
     puts "current: #{current.inspect}"
     current = Fiber.yield
   end
end
f.resume(100)     # prints: current: 100
f.resume(1, 2, 3) # prints: current: [1, 2, 3]
f.resume          # prints: current: nil
# ... and so on ...

如果 blocking: false 被传递给 Fiber.newand 当前线程定义了 Fiber.scheduler ,则 Fiber 变为非阻塞(参见类文档中的“非阻塞光纤”部分)。

相关用法


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