class Fiber::Scheduler

这不是一个现有的类,而是 Scheduler 对象应该遵循的接口的文档,以便作为参数传递给 Fiber.scheduler 并处理非阻塞的 fiber。有关某些概念的解释,请参阅 Fiber 类文档中的“非阻塞 fiber”部分。

Scheduler 的行为和用法应如下所示:

这样,并发执行将对每个独立的 Fiber 的代码实现透明。

Scheduler 实现由 gem 提供,例如 Async

钩子方法是:

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

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

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