org.eclipse.net4j.util.concurrent

## Class MonitoredThread.MultiThreadMonitor

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

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

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

  Author:
    Eike Stepper

- - ### Field Summary

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

  - ### Constructor Summary

    Constructors
    Constructor and 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 and 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 `Runnable`

    - #### handleTimeoutExpiration

          protected void handleTimeoutExpiration(MonitoredThread thread)

Copyright (c) 2014 Eike Stepper (Berlin, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html