Package org.eclipse.net4j.util.concurrent

## Class MonitoredThread.MultiThreadMonitor

- java.lang.Object
- - org.eclipse.net4j.util.concurrent.MonitoredThread.MultiThreadMonitor

- All Implemented Interfaces:
    `java.lang.Runnable`, `MonitoredThread.ThreadMonitor`
  Enclosing class:
    MonitoredThread

      public static class MonitoredThread.MultiThreadMonitor
      extends java.lang.Object
      implements MonitoredThread.ThreadMonitor, java.lang.Runnable

  Author:
    Eike Stepper

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static long` | `SYNCED_START` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MultiThreadMonitor​(long timeOut)` | Same as calling `MonitoredThread(idleTimeOut, SYNCED_START)`.
    `MultiThreadMonitor​(long idleTimeOut, long startOffset)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addThread​(MonitoredThread thread)` |
    `long` | `getIdleTimeOut()` |
    `void` | `handleFinished​(MonitoredThread thread)` |
    `void` | `handleStarting​(MonitoredThread thread)` |
    `protected void` | `handleTimeoutExpiration​(MonitoredThread thread)` |
    `void` | `run()` |

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

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

- - ### Field Detail

    - #### SYNCED_START

          public static final long SYNCED_START

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### MultiThreadMonitor

          public MultiThreadMonitor​(long idleTimeOut,
                                    long startOffset)

      Parameters:
        `idleTimeOut` - The number of milli seconds one of the threads may be idle (i.e. not having called `MonitoredThread.heartBeat()`) before `handleTimeoutExpiration(MonitoredThread)` is called.
        `startOffset` - The number of milli seconds to sleep between threads are started. Zero means not to sleep and `SYNCED_START` means that all threads start at the same time by waiting on a shared latch.

    - #### MultiThreadMonitor

          public MultiThreadMonitor​(long timeOut)

      Same as calling `MonitoredThread(idleTimeOut, SYNCED_START)`.

  - ### Method Detail

    - #### getIdleTimeOut

          public long getIdleTimeOut()

    - #### addThread

          public void addThread​(MonitoredThread thread)

    - #### handleStarting

          public void handleStarting​(MonitoredThread thread)

      Specified by:
        `handleStarting` in interface `MonitoredThread.ThreadMonitor`

    - #### handleFinished

          public void handleFinished​(MonitoredThread thread)

      Specified by:
        `handleFinished` in interface `MonitoredThread.ThreadMonitor`

    - #### run

          public void run()

      Specified by:
        `run` in interface `java.lang.Runnable`

    - #### handleTimeoutExpiration

          protected void handleTimeoutExpiration​(MonitoredThread thread)