java类库详细讲解
源代码在线查看: phantomref.html
Determining When an Object Will Be Reclaimed
(Java Developers Almanac Example)
BODY CODE {font-family: Courier, Monospace; font-size: 11pt} TABLE, BODY {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt} PRE {font-family: Courier, Monospace; font-size: 10pt} H3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11pt} A.eglink {text-decoration: none} A:hover.eglink {text-decoration: underline} -->
The Java Developers Almanac 1.4
Order this book from Amazon.
Home
>
List of Packages
>
java.lang.ref
[3 examples]
e108.
Determining When an Object Will Be Reclaimed
A phantom reference is used to determine when an object is just about
to be reclaimed. Phantom references are safer to use than finalization
because once an object is phantom reachable, it cannot be resurrected.
// Create the phantom reference.
ReferenceQueue rq = new ReferenceQueue();
PhantomReference pr = new PhantomReference(object, rq);
// Wait until the object is about to be reclaimed.
try {
while (true) {
Reference r = rq.remove();
if (r == pr) {
// The object is about to be reclaimed.
// Clear the referent so that it can be reclaimed.
r.clear();
}
}
} catch (InterruptedException e) {
}
Related Examples
e106.
Holding onto an Object Until Memory Becomes Low
e107.
Determining When an Object Is No Longer Used
© 2002 Addison-Wesley.