一旦我在一个光纤实例的中间完成了,也就是说,我在没有完成它的情况下就从它开始了,并且我不再使用fiber,我应该如何处理它?我应该显式地销毁它,还是对光纤有类似于yield的东西,或者它会被正确地垃圾收集?如果是,那么ruby如何知道我将来是否会fiber

最佳答案

如果它已经死了,你不必杀掉它;用一根纤维yield就可以了。您只需确保fiber实例没有存储在任何变量中。这就是您“释放”它们的方式:垃圾收集器通过周期性地销毁对象而不引用它们来工作。如果你把你的纤维放在某个变量里,它会一直留在你的记忆里,直到你无法接近它。

关于ruby - 退出光纤中间后该怎么办,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9795531/

10-13 05:57