Java多线程中的ThreadPoolExecutor使用解析

  int getCorePoolSize() #返回核心线程数量

  int getMaximumPoolSize() #返回最大的线程数量

  int getPoolSize() #返回当前线程池中的线程数量,包括在运行或休眠,new ThreadPoolExecutor()不会立马创建可用线程

  int getQueue().size() #返回等待执行线程的队列数量

  void shutdown() #不再添加新task,使当前未执行完的线程继续执行,不会阻塞主线程main,调用shutdown()后,主线程马上结束,而线程池继续执行直到任务执行完毕;shutdown()使线程池状态立即变成SHUTDOWN状态

  List shutdownNow() #中断所有Task并且抛出InterruptesException异常,前提是线程中使用Thread.currentThread().isInterrupted()判断当前线程是否被中断;shutdownNow()使线程池状态立即变成STOP状态,并试图停止所有正在执行的线程,线程池继续执行直到当前任务执行完毕

  boolean isShutdown() #当前线程池是否已被关闭

  boolean isTerminating() #判断当前线程池在shutdown()或shutdownNow()后处于正在中止但是尚未完全中止时,返回ture。

  boolean isTerminated() #判断当前线程池在shutdown()或shutdownNow()后已完全中止时,返回ture。

  boolean awaitTermination(long timeout, TimeUnit unit) #在指定时间内查看线程池是否已终止工作;在线程池执行shutdown()后,如果池中还有任务在被执行则阻塞,否则将不再阻塞;与shutdown()结合可实现"等待执行完毕"的效果。

  boolean allowsCoreThreadTimeOut() #配置核心线程是否有超时效果

  boolean allowsCoreThreadTimeOut(boolean value) #配置核心线程是否有超时效果

  boolean prestartCoreThread() #每次初始化一个核心线程,直到达到corePoolSize时返回false

  int prestartAllCoreThreads() #初始化全部corePoolSize数量的核心线程,返回初始化的个数

  long getCompletedTaskCount() #返回已执行完成的线程大概累积数量

  void beforeExecute(Thread t, Runnable r) #线程执行前的操作

  void afterExecute(Runnable r, Throwable t) #线程执行结束后的操作

  boolean remove(Runnable task) #删除被execute()调用的尚未被执行的Runnable任务,对submit()调用的线程需使用purge()

  int getActiveCount() #获取正在执行任务的线程数

  long getTaskCount() #获取可被执行的任务数