|
4
|
| Dimitris Andreou · 技术社区 · 16 年前 |
|
|
1
3
没有订购保证。对于Finalizer.java,可以在处理所有引用之前关闭线程。有关FinalizableReferenceQueue,请参见文档:
这是故意的行为。例如,当对键和/或值的引用被清除时,我们使用FRQ来清除映射条目。如果用户不再有对地图的引用,反过来也不再有对FRQ的引用,那么处理这些引用就没有意义了。 |
|
|
2
4
|
|
|
3
1
我认为没有这样的保证。GC本身没有RAM的完整和即时视图(它不能,因为GC运行在一次只能查看几个字节的CPU上)。在您的示例中,假设一个基本的“mark&扫描“GC,很有可能A和B在同一标记阶段被宣布为不可到达,并且没有特定的顺序一起扫描。维持拓扑秩序可能是昂贵的。
|