本文简要介绍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.new
,and
当前线程定义了 Fiber.scheduler
,则 Fiber
变为非阻塞(参见类文档中的“非阻塞光纤”部分)。
相关用法
- Ruby Fiber.schedule用法及代码示例
- Ruby Fiber.transfer用法及代码示例
- Ruby Fiber.backtrace_locations用法及代码示例
- Ruby Fiber.scheduler用法及代码示例
- Ruby Fiber.backtrace用法及代码示例
- Ruby Fiber类用法及代码示例
- Ruby FiberError类用法及代码示例
- Ruby File.identical?用法及代码示例
- Ruby FileUtils.mkdir用法及代码示例
- Ruby FileUtils.compare_file用法及代码示例
- Ruby FileUtils.options_of用法及代码示例
- Ruby File.dirname用法及代码示例
- Ruby FileUtils.ln_s用法及代码示例
- Ruby Fiddle.dlwrap用法及代码示例
- Ruby File.directory?用法及代码示例
- Ruby FileUtils.install用法及代码示例
- Ruby File.link用法及代码示例
- Ruby FileUtils.chown_R用法及代码示例
- Ruby File.expand_path用法及代码示例
- Ruby FileUtils.cp_lr用法及代码示例
- Ruby File.lstat用法及代码示例
- Ruby File.umask用法及代码示例
- Ruby FileUtils.rmdir用法及代码示例
- Ruby File.absolute_path?用法及代码示例
- Ruby FileUtils.rm_rf用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Fiber.new。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。