2012-03-20 55 views
3

一旦我在光纖實例fiber的中間完成,即I yield編輯完成後沒有完成,我不再使用fiber,我該怎麼做用它做?我是否應該明確銷燬它,或者是否有類似kill的光纖,或者它是否會被垃圾收集?如果是,那麼Ruby如何知道我將來是否會去fiber.resume在光纖中間退出後要做什麼

回答

0

如果它已經死了,你不必殺死它;來自光纖的yield將完成這項工作。您只需確保光纖實例不存儲在任何變量中。這就是你「釋放」它們的方式:垃圾收集器的工作原理是定期銷燬對象而不引用它們。如果你將光纖放在一些變量中,它會一直留在內存中,直到無法訪問爲止。