class Fiber::Scheduler

这不是一个实际存在的类,而是为了说明 Scheduler 对象为了作为 Fiber.scheduler 的参数并处理非阻塞纤程而应该遵守的接口。另请参阅 Fiber 类文档中的“非阻塞纤程”部分,以了解一些概念的解释。

Scheduler 的行为和用法预计如下:

这样,对于每个单独的 Fiber 代码,都可以透明地实现并发执行。

Scheduler 的实现由 gems 提供,例如 Async

钩子方法包括:

除非另有说明,否则钩子实现是强制性的:如果它们没有实现,尝试调用钩子的方法将会失败。为了提供向后兼容性,未来的钩子将是可选的(如果由于为较旧的 Ruby 版本创建调度器而未实现,则需要此钩子的代码将不会失败,并且只会以阻塞方式运行)。

强烈建议调度器实现 fiber 方法,该方法由 Fiber.schedule 委托。

可以在 Ruby 代码的 test/fiber/scheduler.rb 中找到调度器的示例玩具实现。