0

感谢 Jeffrey 的精彩, http: //msdn.microsoft.com/en-us/magazine/bb985010.aspx

“垃圾收集器扫描终结队列以寻找指向这些对象的指针。当找到指针时,该指针将从终结队列中删除并附加到可访问队列(发音为“F-reachable”)。”

从上面,对象 J、I、E 从 Finalization Queue 移动到 fReachable Queue。

我不清楚 Finalization Queue 到 fReachable Queue 的过渡。

Queue的FIFO逻辑呢?对象 E 的出队如何在不使 F 出队的情况下完成?

是终结队列还是终结列表?

请阐明一些光。

4

1 回答 1

4

尽管在短语“finalization queue”和“freachable queue”中有“queue”一词,但不应对这些集合中的对象的处理顺序做出任何假设。我认为“可定稿清单”一词更具描述性;我能想到将其称为“队列”的唯一原因是垃圾收集器在识别出大对象后,启动一个新的终结队列,然后访问其中的每个条目;然后每个条目被丢弃(如果终结器已被抑制),添加到新的终结队列(如果对象已被标记为保留),或添加到 freachable 队列(如果对象尚未被标记为保留)。

于 2012-06-01T02:21:26.643 回答