类 DevThreadPool
java.lang.Object
dev.utils.common.thread.DevThreadPool
detail: 线程池 ( 构建类 )
- 作者:
- Ttt
- 另请参阅:
-
嵌套类概要
嵌套类 -
构造器概要
构造器构造器说明DevThreadPool(int threadNumber) 构造函数DevThreadPool(DevThreadPool.DevThreadPoolType devThreadPoolType) 构造函数DevThreadPool(ExecutorService threadPool) 构造函数 -
方法概要
修饰符和类型方法说明booleanawaitTermination(long timeout, TimeUnit unit) 请求关闭、发生超时或者当前线程中断 无论哪一个首先发生之后, 都将导致阻塞, 直到所有任务完成执行void通过反射, 调用某个类的方法void加入到线程池任务队列void加入到线程池任务队列static int获取线程数static int获取线程数invokeAll(Collection<? extends Callable<T>> tasks) 执行给定的任务 当所有任务完成时, 返回保持任务状态和结果的 Future 列表 返回列表的所有元素的Future.isDone()为true注意, 可以正常地或通过抛出异常来终止已完成任务 如果正在进行此操作时修改了给定的 collection, 则此方法的结果是不确定的invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) 执行给定的任务 当所有任务完成或超时期满时 ( 无论哪个首先发生 ), 返回保持任务状态和结果的 Future 列表 返回列表的所有元素的Future.isDone()为true一旦返回后, 即取消尚未完成的任务 注意, 可以正常地或通过抛出异常来终止已完成任务 如果此操作正在进行时修改了给定的 collection, 则此方法的结果是不确定的<T> TinvokeAny(Collection<? extends Callable<T>> tasks) 执行给定的任务 如果某个任务已成功完成 ( 也就是未抛出异常 ), 则返回其结果 一旦正常或异常返回后, 则取消尚未完成的任务 如果此操作正在进行时修改了给定的 collection, 则此方法的结果是不确定的<T> TinvokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) 执行给定的任务 如果在给定的超时期满前某个任务已成功完成 ( 也就是未抛出异常 ), 则返回其结果 一旦正常或异常返回后, 则取消尚未完成的任务 如果此操作正在进行时修改了给定的 collection, 则此方法的结果是不确定的boolean判断线程池是否已关闭 ( isShutDown 当调用 shutdown() 方法后返回为 true )boolean若关闭后所有任务都已完成, 则返回 true 注意除非首先调用 shutdown 或 shutdownNow, 否则 isTerminated 永不为 true isTerminated 当调用 shutdown() 方法后, 并且所有提交的任务完成后返回为 true延迟执行 Runnable 命令<V> ScheduledFuture<V> 延迟执行 Callable 命令scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) 延迟并以固定休息时间循环执行命令scheduleWithFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) 延迟并循环执行命令voidshutdown()shutdown 会等待所有提交的任务执行完成, 不管是正在执行还是保存在任务队列中的已提交任务 待以前提交的任务执行完毕后关闭线程池 启动一次顺序关闭, 执行以前提交的任务, 但不接受新任务 如果已经关闭, 则调用没有作用shutdownNow 会尝试中断正在执行的任务 ( 其主要是中断一些指定方法如 sleep 方法 ) , 并且停止执行等待队列中提交的任务 试图停止所有正在执行的活动任务, 暂停处理正在等待的任务, 并返回等待执行的任务列表 无法保证能够停止正在处理的活动执行任务, 但是会尽力尝试Future<?> 提交一个 Runnable 任务用于执行<T> Future<T> 提交一个 Runnable 任务用于执行<T> Future<T> 提交一个 Callable 任务用于执行 如果想立即阻塞任务的等待, 则可以使用result = threadPool.submit(aCallable).get();形式的构造
-
构造器详细资料
-
DevThreadPool
public DevThreadPool(int threadNumber) 构造函数- 参数:
threadNumber- 线程数量
-
DevThreadPool
构造函数- 参数:
threadPool-ExecutorService
-
DevThreadPool
构造函数- 参数:
devThreadPoolType- 线程初始化类型DevThreadPool.DevThreadPoolType
-
-
方法详细资料
-
getThreads
public static int getThreads()获取线程数- 返回:
getCalcThreads()
-
getCalcThreads
public static int getCalcThreads()获取线程数- 返回:
- 自动计算 CPU 核心数
-
execute
加入到线程池任务队列- 参数:
runnable- 线程
-
execute
加入到线程池任务队列- 参数:
runnables- 线程集合
-
execute
通过反射, 调用某个类的方法- 参数:
method- 方法object- 对象
-
shutdown
public void shutdown()shutdown 会等待所有提交的任务执行完成, 不管是正在执行还是保存在任务队列中的已提交任务 待以前提交的任务执行完毕后关闭线程池 启动一次顺序关闭, 执行以前提交的任务, 但不接受新任务 如果已经关闭, 则调用没有作用 -
shutdownNow
shutdownNow 会尝试中断正在执行的任务 ( 其主要是中断一些指定方法如 sleep 方法 ) , 并且停止执行等待队列中提交的任务 试图停止所有正在执行的活动任务, 暂停处理正在等待的任务, 并返回等待执行的任务列表 无法保证能够停止正在处理的活动执行任务, 但是会尽力尝试 -
isShutdown
public boolean isShutdown()判断线程池是否已关闭 ( isShutDown 当调用 shutdown() 方法后返回为 true )- 返回:
trueyes,falseno
-
isTerminated
public boolean isTerminated()若关闭后所有任务都已完成, 则返回 true 注意除非首先调用 shutdown 或 shutdownNow, 否则 isTerminated 永不为 true isTerminated 当调用 shutdown() 方法后, 并且所有提交的任务完成后返回为 true- 返回:
trueyes,falseno
-
awaitTermination
请求关闭、发生超时或者当前线程中断 无论哪一个首先发生之后, 都将导致阻塞, 直到所有任务完成执行- 参数:
timeout- 最长等待时间unit- 时间单位- 返回:
true请求成功,false请求超时- 抛出:
InterruptedException- 终端异常
-
submit
提交一个 Callable 任务用于执行 如果想立即阻塞任务的等待, 则可以使用result = threadPool.submit(aCallable).get();形式的构造- 类型参数:
T- 泛型- 参数:
task- 任务- 返回:
- 表示任务等待完成的 Future, 该 Future 的
get方法在成功完成时将会返回该任务的结果
-
submit
提交一个 Runnable 任务用于执行- 类型参数:
T- 泛型- 参数:
task- 任务result- 返回的结果- 返回:
- 表示任务等待完成的 Future, 该 Future 的
get方法在成功完成时将会返回该任务的结果
-
submit
提交一个 Runnable 任务用于执行- 参数:
task- 任务- 返回:
- 表示任务等待完成的 Future, 该 Future 的
get方法在成功完成时将会返回 null 结果
-
invokeAll
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException 执行给定的任务 当所有任务完成时, 返回保持任务状态和结果的 Future 列表 返回列表的所有元素的Future.isDone()为true注意, 可以正常地或通过抛出异常来终止已完成任务 如果正在进行此操作时修改了给定的 collection, 则此方法的结果是不确定的- 类型参数:
T- 泛型- 参数:
tasks- 任务集合- 返回:
- 表示任务的 Future 列表, 列表顺序与给定任务列表的迭代器所生成的顺序相同, 每个任务都已完成
- 抛出:
InterruptedException- 如果等待时发生中断, 在这种情况下取消尚未完成的任务
-
invokeAll
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException 执行给定的任务 当所有任务完成或超时期满时 ( 无论哪个首先发生 ), 返回保持任务状态和结果的 Future 列表 返回列表的所有元素的Future.isDone()为true一旦返回后, 即取消尚未完成的任务 注意, 可以正常地或通过抛出异常来终止已完成任务 如果此操作正在进行时修改了给定的 collection, 则此方法的结果是不确定的- 类型参数:
T- 泛型- 参数:
tasks- 任务集合timeout- 最长等待时间unit- 时间单位- 返回:
- 表示任务的 Future 列表, 列表顺序与给定任务列表的迭代器所生成的顺序相同 如果操作未超时, 则已完成所有任务, 如果确实超时了, 则某些任务尚未完成
- 抛出:
InterruptedException- 如果等待时发生中断, 在这种情况下取消尚未完成的任务
-
invokeAny
public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException 执行给定的任务 如果某个任务已成功完成 ( 也就是未抛出异常 ), 则返回其结果 一旦正常或异常返回后, 则取消尚未完成的任务 如果此操作正在进行时修改了给定的 collection, 则此方法的结果是不确定的- 类型参数:
T- 泛型- 参数:
tasks- 任务集合- 返回:
- 某个任务返回的结果
- 抛出:
InterruptedException- 如果等待时发生中断ExecutionException- 如果没有任务成功完成
-
invokeAny
public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException 执行给定的任务 如果在给定的超时期满前某个任务已成功完成 ( 也就是未抛出异常 ), 则返回其结果 一旦正常或异常返回后, 则取消尚未完成的任务 如果此操作正在进行时修改了给定的 collection, 则此方法的结果是不确定的- 类型参数:
T- 泛型- 参数:
tasks- 任务集合timeout- 最长等待时间unit- 时间单位- 返回:
- 某个任务返回的结果
- 抛出:
InterruptedException- 如果等待时发生中断ExecutionException- 如果没有任务成功完成TimeoutException- 如果在所有任务成功完成之前给定的超时期满
-
schedule
延迟执行 Runnable 命令- 参数:
command- 命令delay- 延迟时间unit- 单位- 返回:
- 表示挂起任务完成的 ScheduledFuture, 并且其
get()方法在完成后将返回null
-
schedule
延迟执行 Callable 命令- 类型参数:
V- 泛型- 参数:
callable- 命令delay- 延迟时间unit- 时间单位- 返回:
- 可用于提取结果或取消的 ScheduledFuture
-
scheduleWithFixedRate
public ScheduledFuture<?> scheduleWithFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) 延迟并循环执行命令- 参数:
command- 命令initialDelay- 首次执行的延迟时间period- 连续执行之间的周期unit- 时间单位- 返回:
- 表示挂起任务完成的 ScheduledFuture, 并且其
get()方法在取消后将抛出异常
-
scheduleWithFixedDelay
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) 延迟并以固定休息时间循环执行命令- 参数:
command- 命令initialDelay- 首次执行的延迟时间delay- 每一次执行终止和下一次执行开始之间的延迟unit- 时间单位- 返回:
- 表示挂起任务完成的 ScheduledFuture, 并且其
get()方法在取消后将抛出异常
-