3

一旦我在一个 Fiber 实例的中间完成fiber,即我yield从它中编辑而没有完成它,并且我不再使用它,fiber我该怎么处理它?我应该明确地销毁它,还是有类似killFiber 的东西,或者它会被正确地收集起来?如果是,那么 Ruby 怎么知道我fiber.resume将来会不会去呢?

4

1 回答 1

0

如果它已经死了,你不必杀死它;yield从纤维将完成这项工作。您只需确保纤程实例未存储在任何变量中。这就是你“释放”它们的方式:垃圾收集器通过定期销毁对象而不引用它们来工作。如果您将光纤保持在某个变量中,它会一直留在内存中,直到您无法访问它为止。

于 2012-03-21T00:23:31.127 回答