线程池总结

参考博客: https://www.jianshu.com/p/c41e942bcd64,   https://blog.csdn.net/mazhimazh/article/details/19243889

ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,TimeUnit unit,   BlockingQueue<Runnable> workQueue,RejectedExecutionHandler handler)
      核心线程数,  最大线程数, 线程空闲存活时间(仅适用于超过核心线程数的线程), 时间单位, 阻塞队列, 队列已满时的处理方式
     RejectedExecutionHandler:  AbortPolicy, 抛出异常(默认)
                                CallerRunsPolicy, 由调用线程处理该任务
                                DiscardPolicy, 丢弃新任务
                                DiscardOldestPolicy, 丢弃队列头的任务, 继续处理新任务
   prestartCoreThread() 创建一个空闲线程, 等待任务到达
   prestartAllCoreThreads()  创建核心线程数量的空闲线程, 等待任务到达


线程池(Executors 提供静态方法创建线程池) :
 newCachedThreadPool()  创建一个线程池,根据需要创建新的线程,但在可用时将重用先前构建的线程
 newFixedThreadPool(int nThreads) 创建一个指定线程数的线程池
 newScheduledThreadPool(int corePoolSize)  创建一个指定线程数的线程池, 周期性的运行
 newSingleThreadExecutor()  创建一个单线程的线程池
 newWorkStealingPool(int parallelism)  创建一个限定并发数的线程池 (JDK1.8新增)

ExecutorService 线程池管理部分API
  isShutdown()  ExecutorService已关闭
  isTerminated()  不调用shutdown()或shutdownNow(), 永远为false, 关闭所有任务后为true
  shutdown() 不再接受新的任务, 已提交的任务结束后, 则关闭ExecutorService
  shutdownNow() 尝试结束执行中的线程, 并跳过已提交但未执行的任务, 无法保证关闭正在执行的任务
  execute(Runnable) 执行实现Runnable接口的任务, 无返回
  submit(Runnable) 执行实现Runnable接口的任务,返回Future对象, 任务结束future.get()为Null
  submit(Callable) 执行实现Callable接口的任务, 返回Future对象, future.get() 获取任务返回结果
  invokeAny(Collection<? extends Callable<T>>)  执行实现Callable接口的集合任务, 随机返回一个任务的执行结果
  invokeAll(Collection<? extends Callable<T>>)  执行实现Callable接口的集合任务, 返回所有任务的执行结果

  ScheduledExecutorService 周期执行任务API
     scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
       在initialDelay延迟后执行第一个任务, 上一个任务执行完毕后delay时间后, 再执行任务, 固定延迟
     scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
       在initialDelay延迟后执行第一个任务,任务执行时间> period, 则任务完成立即执行, 否则, period时间后, 执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值