Class WeakCollectionCleaner

  • All Implemented Interfaces:
    Runnable

    public final class WeakCollectionCleaner
    extends Thread
    A thread invoking Reference.clear() on each enqueded reference. This is usefull only if Reference subclasses has overridden their clear() method in order to perform some cleaning. This thread is used by WeakHashSet and WeakValueHashMap, which remove their entry from the collection when Reference.clear() is invoked.
    Since:
    2.0
    Author:
    Martin Desruisseaux (IRD)
    • Nested Class Summary

      • Nested classes/interfaces inherited from class Thread

        Thread.State, Thread.UncaughtExceptionHandler
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static WeakCollectionCleaner DEFAULT
      The default thread.
      • Fields inherited from class Thread

        MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void exit()
      Stops the cleaner thread.
      ReferenceQueue<Object> getReferenceQueue()  
      void run()
      Loop to be run during the virtual machine lifetime.
      • Methods inherited from class Thread

        activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
      • Methods inherited from class Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Method Detail

      • getReferenceQueue

        public ReferenceQueue<Object> getReferenceQueue()
      • run

        public void run()
        Loop to be run during the virtual machine lifetime.
        Specified by:
        run in interface Runnable
        Overrides:
        run in class Thread
      • exit

        public void exit()
        Stops the cleaner thread. Calling this method is recommended in all long running applications with custom class loaders (e.g., web applications).