|
|
1
3
EdTe3: 结果是,终结器和常规方法可以在同一个实例上并发执行。这是一个如何发生的解释。代码本质上是:
给定此客户端代码:
这可能会被抖动到类似于伪C的东西上。
像那样执行,
但是,写信给
在标记的位置(<---),没有对CleanResource实例的引用,因此它符合收集条件,并且可以调用Finalizer方法。由于在清除最后一个引用之后的任何时候都可以调用终结器,因此终结器和
edit2:keepalive()确保
原始职位:
这个例子是说,dosomething方法被调用,一旦调用,通过
但自从
编辑:好吧,也许如果有缓存指针指向通过缓存访问的对象字段,从
|
|
|
user1907570 · 如何在退出类的任何方法时自动释放连接? 9 年前 |
|
|
Dat Chu · 检查在收集对象之前是否调用了方法 11 年前 |
|
|
avo · 为什么WeakReference.IsAlive变为false? 12 年前 |
|
|
avo · GC调用Object.Finalize时,子对象是否仍然有效? 12 年前 |
|
|
ben ben · Java和C的终结器# 12 年前 |