![]() |
The Java Developers Almanac 1.4Order this book from Amazon. |
e108. Determining When an Object Will Be ReclaimedA 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) { }
e107. Determining When an Object Is No Longer Used © 2002 Addison-Wesley. |