com.ibm.jvm
Class InterruptibleThread
- java.lang.Object
- java.lang.Thread
- com.ibm.jvm.InterruptibleThread
All implemented interfaces:
java.lang.Runnable
- public class InterruptibleThread
- extends java.lang.Thread
InterruptibleThread
is a utility class that extends
java.lang.Thread
, to allow the wrapping of interruptible runnable
methods. Use InterruptibleThread
instead of
java.lang.Thread
when you instantiate a thread, if you might need
to unblock that thread from a synchronization or networking operation.
You can use InterruptibleThread
to check if a thread is being blocked
on a synchronization or networking call. If the thread is blocked it can then
be unblocked if required.
It uses instances of classes InterruptibleLockContext
and
InterruptibleIOContext
to perform the required isblocked()
and unblock()
methods depending upon whether a synchronization or
networking operation is blocking the thread.
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread |
---|
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler |
Field Summary
Fields inherited from class java.lang.Thread |
---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary
Constructor and Description |
---|
InterruptibleThread()
Allocates a new
InterruptibleThread object and calls it's
superclass constructor.
|
InterruptibleThread(java.lang.Runnable runnable)
Allocates a new
InterruptibleThread object.
|
InterruptibleThread(java.lang.Runnable runnable,java.lang.String threadName)
Allocates a new
InterruptibleThread object.
|
InterruptibleThread(java.lang.String threadName)
Allocates a new
InterruptibleThread object.
|
InterruptibleThread(java.lang.ThreadGroup group,java.lang.Runnable runnable)
Allocates a new
InterruptibleThread object .
|
InterruptibleThread(java.lang.ThreadGroup group,java.lang.Runnable runnable,java.lang.String threadName)
Allocates a new
InterruptibleThread object.
|
InterruptibleThread(java.lang.ThreadGroup group,java.lang.Runnable runnable,java.lang.String threadName,long stack)
Allocates a new
InterruptibleThread object.
|
InterruptibleThread(java.lang.ThreadGroup group,java.lang.String threadName)
Allocates a new
InterruptibleThread object.
|
Method Summary
Modifier and Type | Method and Description |
---|---|
|
isBlocked()
Checks to see if the OS thread is blocked on a synchronized or
networking call.
|
|
run()
Calls its superclass's
run method and then contructs an
InterruptibleIOContext and InterruptibleLockContext
object, which are used by calls to isBlocked() and unBlock() ,
depending on whether the thread is blocking on a synchronization or networking call.
|
|
unBlock()
Break the associated OS thread out of the blocking synchronization or
networking call.
|
Methods inherited from class java.lang.Thread |
---|
activeCount, checkAccess, 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 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail
InterruptibleThread
- public InterruptibleThread()
See Also:
Thread
InterruptibleThread
- public InterruptibleThread(java.lang.Runnable runnable)
Allocates a new
InterruptibleThread
object. The constructor just calls
its superclass constructor.
Parameters:
runnable
- the object whose run method is called. See Also:
Thread
,
Thread.Thread(Runnable runnable)
InterruptibleThread
- public InterruptibleThread(java.lang.Runnable runnable,
- java.lang.String threadName)
Allocates a new
InterruptibleThread
object. The constructor just calls
its superclass constructor.
Parameters:
runnable
- the object whose run method is called. threadName
- the name of the new thread. See Also:
Thread
,
Thread.Thread(Runnable runnable, String threadName)
InterruptibleThread
- public InterruptibleThread(java.lang.String threadName)
Allocates a new
InterruptibleThread
object. The constructor just calls
its superclass constructor.
Parameters:
threadName
- the name of the new thread. See Also:
Thread
,
Thread.Thread(String threadName)
InterruptibleThread
- public InterruptibleThread(java.lang.ThreadGroup group,
- java.lang.Runnable runnable)
Allocates a new
InterruptibleThread object
. The constructor just calls
its superclass constructor.
Parameters:
group
- the thread group. runnable
- the object whose run method is called. See Also:
Thread
,
Thread.Thread(ThreadGroup group, Runnable runnable)
InterruptibleThread
- public InterruptibleThread(java.lang.ThreadGroup group,
- java.lang.Runnable runnable,
- java.lang.String threadName)
Allocates a new
InterruptibleThread
object. The constructor just calls
its superclass constructor.
Parameters:
group
- the thread group. runnable
- the object whose run method is called. threadName
- the name of the new thread. See Also:
Thread
,
Thread.Thread(ThreadGroup group, Runnable runnable, String threadName)
InterruptibleThread
- public InterruptibleThread(java.lang.ThreadGroup group,
- java.lang.Runnable runnable,
- java.lang.String threadName,
- long stack)
Allocates a new
InterruptibleThread
object. The constructor just calls
its superclass constructor.
Parameters:
group
- the thread group. runnable
- the object whose run method is called. threadName
- the name of the new thread. stack
- stack size for the new thread, or zero if the parameter is to be ignored. See Also:
Thread
,
Thread.Thread(ThreadGroup group, Runnable runnable, String threadName, long stack)
InterruptibleThread
- public InterruptibleThread(java.lang.ThreadGroup group,
- java.lang.String threadName)
Allocates a new
InterruptibleThread
object. The constructor just calls
its superclass constructor.
Parameters:
group
- the thread group. threadName
- the name of the new thread. See Also:
Thread
,
Thread.Thread(ThreadGroup group, String threadName)
Method Detail
run
- public void run()
Calls its superclass's
run
method and then contructs an
InterruptibleIOContext
and InterruptibleLockContext
object, which are used by calls to isBlocked()
and unBlock()
,
depending on whether the thread is blocking on a synchronization or networking call.
Specified by:
run
in interface java.lang.Runnable
Overrides:
run
in class java.lang.Thread
See Also:
Thread
isBlocked
- public boolean isBlocked()
Checks to see if the OS thread is blocked on a synchronized or
networking call.
Returns:
true
if OS thread is blocked false
otherwise. unBlock
- public void unBlock()
Break the associated OS thread out of the blocking synchronization or
networking call.
InterruptibleThread
object and calls it's superclass constructor.