类 DevThreadPool

java.lang.Object
dev.utils.common.thread.DevThreadPool

public final class DevThreadPool extends Object
detail: 线程池 ( 构建类 )
作者:
Ttt
另请参阅:
  • 嵌套类概要

    嵌套类
  • 构造器概要

    构造器
    构造器
    说明
    DevThreadPool(int threadNumber)
    构造函数
    构造函数
    构造函数
  • 方法概要

    修饰符和类型
    方法
    说明
    boolean
    awaitTermination(long timeout, TimeUnit unit)
    请求关闭、发生超时或者当前线程中断 无论哪一个首先发生之后, 都将导致阻塞, 直到所有任务完成执行
    void
    execute(Method method, Object object)
    通过反射, 调用某个类的方法
    void
    execute(Runnable runnable)
    加入到线程池任务队列
    void
    execute(List<Runnable> runnables)
    加入到线程池任务队列
    static int
    获取线程数
    static int
    获取线程数
    <T> List<Future<T>>
    invokeAll(Collection<? extends Callable<T>> tasks)
    执行给定的任务 当所有任务完成时, 返回保持任务状态和结果的 Future 列表 返回列表的所有元素的 Future.isDone()true 注意, 可以正常地或通过抛出异常来终止已完成任务 如果正在进行此操作时修改了给定的 collection, 则此方法的结果是不确定的
    <T> List<Future<T>>
    invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)
    执行给定的任务 当所有任务完成或超时期满时 ( 无论哪个首先发生 ), 返回保持任务状态和结果的 Future 列表 返回列表的所有元素的 Future.isDone()true 一旦返回后, 即取消尚未完成的任务 注意, 可以正常地或通过抛出异常来终止已完成任务 如果此操作正在进行时修改了给定的 collection, 则此方法的结果是不确定的
    <T> T
    invokeAny(Collection<? extends Callable<T>> tasks)
    执行给定的任务 如果某个任务已成功完成 ( 也就是未抛出异常 ), 则返回其结果 一旦正常或异常返回后, 则取消尚未完成的任务 如果此操作正在进行时修改了给定的 collection, 则此方法的结果是不确定的
    <T> T
    invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)
    执行给定的任务 如果在给定的超时期满前某个任务已成功完成 ( 也就是未抛出异常 ), 则返回其结果 一旦正常或异常返回后, 则取消尚未完成的任务 如果此操作正在进行时修改了给定的 collection, 则此方法的结果是不确定的
    boolean
    判断线程池是否已关闭 ( isShutDown 当调用 shutdown() 方法后返回为 true )
    boolean
    若关闭后所有任务都已完成, 则返回 true 注意除非首先调用 shutdown 或 shutdownNow, 否则 isTerminated 永不为 true isTerminated 当调用 shutdown() 方法后, 并且所有提交的任务完成后返回为 true
    schedule(Runnable command, long delay, TimeUnit unit)
    延迟执行 Runnable 命令
    schedule(Callable<V> callable, long delay, TimeUnit unit)
    延迟执行 Callable 命令
    scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
    延迟并以固定休息时间循环执行命令
    scheduleWithFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
    延迟并循环执行命令
    void
    shutdown 会等待所有提交的任务执行完成, 不管是正在执行还是保存在任务队列中的已提交任务 待以前提交的任务执行完毕后关闭线程池 启动一次顺序关闭, 执行以前提交的任务, 但不接受新任务 如果已经关闭, 则调用没有作用
    shutdownNow 会尝试中断正在执行的任务 ( 其主要是中断一些指定方法如 sleep 方法 ) , 并且停止执行等待队列中提交的任务 试图停止所有正在执行的活动任务, 暂停处理正在等待的任务, 并返回等待执行的任务列表 无法保证能够停止正在处理的活动执行任务, 但是会尽力尝试
    提交一个 Runnable 任务用于执行
    <T> Future<T>
    submit(Runnable task, T result)
    提交一个 Runnable 任务用于执行
    <T> Future<T>
    submit(Callable<T> task)
    提交一个 Callable 任务用于执行 如果想立即阻塞任务的等待, 则可以使用 result = threadPool.submit(aCallable).get(); 形式的构造

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造器详细资料

  • 方法详细资料

    • getThreads

      public static int getThreads()
      获取线程数
      返回:
      getCalcThreads()
    • getCalcThreads

      public static int getCalcThreads()
      获取线程数
      返回:
      自动计算 CPU 核心数
    • execute

      public void execute(Runnable runnable)
      加入到线程池任务队列
      参数:
      runnable - 线程
    • execute

      public void execute(List<Runnable> runnables)
      加入到线程池任务队列
      参数:
      runnables - 线程集合
    • execute

      public void execute(Method method, Object object)
      通过反射, 调用某个类的方法
      参数:
      method - 方法
      object - 对象
    • shutdown

      public void shutdown()
      shutdown 会等待所有提交的任务执行完成, 不管是正在执行还是保存在任务队列中的已提交任务 待以前提交的任务执行完毕后关闭线程池 启动一次顺序关闭, 执行以前提交的任务, 但不接受新任务 如果已经关闭, 则调用没有作用
    • shutdownNow

      public List<Runnable> shutdownNow()
      shutdownNow 会尝试中断正在执行的任务 ( 其主要是中断一些指定方法如 sleep 方法 ) , 并且停止执行等待队列中提交的任务 试图停止所有正在执行的活动任务, 暂停处理正在等待的任务, 并返回等待执行的任务列表 无法保证能够停止正在处理的活动执行任务, 但是会尽力尝试
      返回:
      List<Runnable>
    • isShutdown

      public boolean isShutdown()
      判断线程池是否已关闭 ( isShutDown 当调用 shutdown() 方法后返回为 true )
      返回:
      true yes, false no
    • isTerminated

      public boolean isTerminated()
      若关闭后所有任务都已完成, 则返回 true 注意除非首先调用 shutdown 或 shutdownNow, 否则 isTerminated 永不为 true isTerminated 当调用 shutdown() 方法后, 并且所有提交的任务完成后返回为 true
      返回:
      true yes, false no
    • awaitTermination

      public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException
      请求关闭、发生超时或者当前线程中断 无论哪一个首先发生之后, 都将导致阻塞, 直到所有任务完成执行
      参数:
      timeout - 最长等待时间
      unit - 时间单位
      返回:
      true 请求成功, false 请求超时
      抛出:
      InterruptedException - 终端异常
    • submit

      public <T> Future<T> submit(Callable<T> task)
      提交一个 Callable 任务用于执行 如果想立即阻塞任务的等待, 则可以使用 result = threadPool.submit(aCallable).get(); 形式的构造
      类型参数:
      T - 泛型
      参数:
      task - 任务
      返回:
      表示任务等待完成的 Future, 该 Future 的 get 方法在成功完成时将会返回该任务的结果
    • submit

      public <T> Future<T> submit(Runnable task, T result)
      提交一个 Runnable 任务用于执行
      类型参数:
      T - 泛型
      参数:
      task - 任务
      result - 返回的结果
      返回:
      表示任务等待完成的 Future, 该 Future 的 get 方法在成功完成时将会返回该任务的结果
    • submit

      public Future<?> submit(Runnable task)
      提交一个 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

      public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit)
      延迟执行 Runnable 命令
      参数:
      command - 命令
      delay - 延迟时间
      unit - 单位
      返回:
      表示挂起任务完成的 ScheduledFuture, 并且其 get() 方法在完成后将返回 null
    • schedule

      public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit)
      延迟执行 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() 方法在取消后将抛出异常