Class AbstractThreadManager
java.lang.Object
com.pnfsoftware.jeb.util.concurrent.AbstractThreadManager
- Direct Known Subclasses:
DaemonThreadManager
A non-static, customizable version of
ThreadUtil
.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract Thread
Create a thread.boolean
monitor
(Thread t, IMonitorInfoProvider provider) Monitor a running thread, and attempt to terminate it after a dynamic timeout has elapsed.Create and start a new daemon thread.Create and start a new daemon thread.boolean
Gracefully stop a running thread.
-
Constructor Details
-
AbstractThreadManager
public AbstractThreadManager()
-
-
Method Details
-
create
Create a thread.- Parameters:
r
- the runnable- Returns:
- the new thread
-
start
Create and start a new daemon thread.- Parameters:
r
- the runnable- Returns:
- the running thread
-
start
Create and start a new daemon thread.- Parameters:
name
- thread namer
- the runnable- Returns:
- the running thread
-
stop
Gracefully stop a running thread. This method is blocking.- Parameters:
t
- the running thread- Returns:
- true if the thread was stopped successfully
-
monitor
Monitor a running thread, and attempt to terminate it after a dynamic timeout has elapsed. This method is blocking. In order for this method to work properly and responsively, the monitored thread should check forinterruptions
regularly, and should not disregardInterruptedException
s.- Parameters:
t
- the running threadprovider
- information for the monitor (timeout, probingPeriod, etc.); if the probing period is invalid, it will be set to a default 100ms.- Returns:
- true if the thread has ended successfully (may have ended because it completed, may have ended because it processed the interruption); unless something bad happens (eg, the monitor is interrupted), this method should always return true
-