org.apache.commons.io
Class ThreadMonitor
java.lang.Object
org.apache.commons.io.ThreadMonitor
- All Implemented Interfaces:
- java.lang.Runnable
class ThreadMonitor
- extends java.lang.Object
- implements java.lang.Runnable
Monitors a thread, interrupting it of it reaches the specified timout.
This works by sleeping until the specified timout amount and then
interrupting the thread being monitored. If the thread being monitored
completes its work before being interrupted, it should interrupt()
the monitor thread.
long timeoutInMillis = 1000;
try {
Thread monitor = ThreadMonitor.start(timeoutInMillis);
// do some work here
ThreadMonitor.stop(monitor);
} catch (InterruptedException e) {
// timed amount was reached
}
- Version:
- $Id: ThreadMonitor.java 1002689 2010-09-29 15:43:48Z niallp $
Field Summary |
private java.lang.Thread |
thread
|
private long |
timeout
|
Constructor Summary |
private |
ThreadMonitor(java.lang.Thread thread,
long timeout)
Construct and new monitor. |
Method Summary |
void |
run()
Sleep until the specified timout amount and then
interrupt the thread being monitored. |
static java.lang.Thread |
start(long timeout)
Start monitoring the current thread. |
static java.lang.Thread |
start(java.lang.Thread thread,
long timeout)
Start monitoring the specified thread. |
static void |
stop(java.lang.Thread thread)
Stop monitoring the specified thread. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
thread
private final java.lang.Thread thread
timeout
private final long timeout
ThreadMonitor
private ThreadMonitor(java.lang.Thread thread,
long timeout)
- Construct and new monitor.
- Parameters:
thread
- The thread to monitortimeout
- The timout amount in milliseconds
start
public static java.lang.Thread start(long timeout)
- Start monitoring the current thread.
- Parameters:
timeout
- The timout amount in milliseconds
or no timeout if the value is zero or less
- Returns:
- The monitor thread or
null
if the timout amount is not greater than zero
start
public static java.lang.Thread start(java.lang.Thread thread,
long timeout)
- Start monitoring the specified thread.
- Parameters:
thread
- The thread The thread to monitortimeout
- The timout amount in milliseconds
or no timeout if the value is zero or less
- Returns:
- The monitor thread or
null
if the timout amount is not greater than zero
stop
public static void stop(java.lang.Thread thread)
- Stop monitoring the specified thread.
- Parameters:
thread
- The monitor thread, may be null
run
public void run()
- Sleep until the specified timout amount and then
interrupt the thread being monitored.
- Specified by:
run
in interface java.lang.Runnable
- See Also:
Runnable.run()
Copyright (c) 2002-2011 Apache Software Foundation