class ThreadMonitor
extends java.lang.Object
implements java.lang.Runnable
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
}
Modifier and Type | Field and Description |
---|---|
private java.lang.Thread |
thread |
private long |
timeout |
Modifier | Constructor and Description |
---|---|
private |
ThreadMonitor(java.lang.Thread thread,
long timeout)
Construct and new monitor.
|
Modifier and Type | Method and Description |
---|---|
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.
|
private ThreadMonitor(java.lang.Thread thread, long timeout)
thread
- The thread to monitortimeout
- The timout amount in millisecondspublic static java.lang.Thread start(long timeout)
timeout
- The timout amount in milliseconds
or no timeout if the value is zero or lessnull
if the timout amount is not greater than zeropublic static java.lang.Thread start(java.lang.Thread thread, long timeout)
thread
- The thread The thread to monitortimeout
- The timout amount in milliseconds
or no timeout if the value is zero or lessnull
if the timout amount is not greater than zeropublic static void stop(java.lang.Thread thread)
thread
- The monitor thread, may be null
public void run()
run
in interface java.lang.Runnable
Runnable.run()
Copyright (c) 2002-2016 Apache Software Foundation