# Class: com.pnfsoftware.jeb.util.concurrent.AbstractThreadManager

A non\-static, customizable version of [ThreadUtil](ThreadUtil).

## Constructor: AbstractThreadManager


## Method: create
- parameter: `r`, type: `java.lang.Runnable`
- return type: `java.lang.Thread`

Description: Create a thread.
parameter: r: the runnable
return: the new thread

## Method: monitor
- parameter: `t`, type: `java.lang.Thread`
- parameter: `provider`, type: `com.pnfsoftware.jeb.util.concurrent.IMonitorInfoProvider`
- return type: `boolean`

Description: 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 for [interruptions](Thread#isInterrupted()) regularly, and should not disregard [InterruptedException](InterruptedException)s.
parameter: t: the running thread
parameter: provider: information for the monitor \(timeout, probingPeriod, etc.\); if the probing            period is invalid, it will be set to a default 100ms.
return: 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

## Method: start
- parameter: `r`, type: `java.lang.Runnable`
- return type: `java.lang.Thread`

Description: Create and start a new daemon thread.
parameter: r: the runnable
return: the running thread

## Method: start
- parameter: `name`, type: `java.lang.String`
- parameter: `r`, type: `java.lang.Runnable`
- return type: `java.lang.Thread`

Description: Create and start a new daemon thread.
parameter: name: thread name
parameter: r: the runnable
return: the running thread

## Method: stop
- parameter: `t`, type: `java.lang.Thread`
- return type: `boolean`

Description: Gracefully stop a running thread. **This method is blocking.**
parameter: t: the running thread
return: true if the thread was stopped successfully

