美文网首页
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