org.eclipse.jetty.util.thread

## Class ShutdownThread

- java.lang.Object
- - java.lang.Thread
  - - org.eclipse.jetty.util.thread.ShutdownThread

All Implemented Interfaces:
  Runnable

    public class ShutdownThread
    extends Thread

ShutdownThread is a shutdown hook thread implemented as singleton that maintains a list of lifecycle instances that are registered with it and provides ability to stop these lifecycles upon shutdown of the Java Virtual Machine

### Nested Class Summary

### Nested classes/interfaces inherited from class java.lang.Thread

`Thread.State, Thread.UncaughtExceptionHandler`

### Field Summary

### Fields inherited from class java.lang.Thread

`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

### Method Summary

Methods
`static void` `deregister(LifeCycle lifeCycle)`
`static ShutdownThread` `getInstance()` Returns the instance of the singleton
`static void` `register(int index, LifeCycle... lifeCycles)`
`static void` `register(LifeCycle... lifeCycles)`
`void` `run()`

### Methods inherited from class java.lang.Thread

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

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Method Detail

#### getInstance

    public static ShutdownThread getInstance()

Returns the instance of the singleton

Returns:
  the singleton instance of the `ShutdownThread`

#### register

    public static void register(LifeCycle... lifeCycles)

#### register

    public static void register(int index,
                LifeCycle... lifeCycles)

#### deregister

    public static void deregister(LifeCycle lifeCycle)

#### run

    public void run()

Specified by:
  `run` in interface `Runnable`
Overrides:
  `run` in class `Thread`