美文网首页
ThreadPoolExecutor使用详解

ThreadPoolExecutor使用详解

作者: 王凡77 | 来源:发表于2020-07-03 17:46 被阅读0次


1、ThreadPoolExecutor构造参数的详解

corePoolSize, // 线程池长期维持的线程数,即使线程处于Idle状态,也不会回收。

intmaximumPoolSize, // 线程数的上限

keepAliveTime, TimeUnit unit, // 超过corePoolSize的线程的idle时长, // 超过这个时间,多余的线程会被回收。

BlockingQueue workQueue, // 任务的排队队列 ,线程数持续增长会引发OOM。

ThreadFactory threadFactory, // 新线程的产生方式  为线程做标记更好查找线程

 RejectedExecutionHandler handler) // 拒绝策略 当线程池队列满时候触发 

AbortPolicy 抛出异常(默认策略)、DiscardPolicy抛弃、DiscardOldestPolicy抛弃队首、

CallerRunsPolicy主线程自己执行。

2、submit与execute的区别

submit是一个带返回值的方式。返回Future对象,其中主要有三种方式

对比源码发现 Runnable 本质上是被转化为一个Callable对象提交.

execute.(Runnable command):只接收runable对象。

注意:

submit提交会把线程的返回值与异常封装到Fututre对象中,运行时不会抛出异常。

execute会抛出异常。

相关文章

网友评论

      本文标题:ThreadPoolExecutor使用详解

      本文链接:https://www.haomeiwen.com/subject/nwmrqktx.html