3

Fiber インスタンスの途中で作業を終えたらfiber、つまり、yieldそれを完了せずにそれから ed をfiber実行し、それ以上使用していない場合、どうすればよいですか? 明示的に破棄する必要がありますかkill、ファイバーのようなものがありますか、それとも適切にガベージコレクションされますか? もしそうなら、Rubyは私がfiber.resume将来行くかどうかをどうやって知るのでしょうか?

4

1 に答える 1

0

すでに死んでいる場合は、殺す必要はありません。yield繊維から仕事をします。ファイバー インスタンスがどの変数にも格納されていないことを確認する必要があります。それがそれらを「解放」する方法です。ガベージコレクターは、オブジェクトへの参照なしで定期的にオブジェクトを破棄することによって機能します。ファイバーを変数に保持すると、到達不能になるまでメモリに残ります。

于 2012-03-21T00:23:31.127 に答える