美文网首页
线程池 参数理解

线程池 参数理解

作者: Cliper | 来源:发表于2021-07-10 17:03 被阅读0次

线程池的的作用归根结底就是避免重复创建线程 带来的性能开销。
下面来看看线程池的参数 所代表的意义,已经在线程池启动时所起到的作用。
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler) 。

corePoolSize :

核心线程大小。
主要作用是减少线程的创建时间和销毁时间。
假设现在corePoolSize设置为 3 ,刚开始工作线程数量为 == 0 ,来了一个任务那么corePoolSize == 1,第一个任务执行完毕,又来了一个线程还是会继续创建线程 去执行任务 而不是交给第一个线程执行,直到创建线程数量 为3。

maximumPoolSize:

最大线程数 。
假设maximumPoolSize设置为5,maximumPoolSize一定是要大于corePoolSize ,比如任务太多3个线程都还在工作,那么会继续创建线程最多再创建2个额外线程。

keepAliveTime

额外线程存活时间。
当创建的两个额外线程执行完任务后,等到设定的时间就会被回收 释放。

workQueue

工作队列。
用于什么场景呢?还是上面的场景。如果任务实在太多了,3个核心线程,2个额外线程 都还在执行任务,现在源源不断还来了很多任务,那么就会被加入到工作队列里面等待被执行。如果一下子分配了太多的任务工作队列会出现OOM ,为啥呢?因为使用了无界队列 有多少任务塞多少任务就 任务居多 就会出现OOM。那么怎么解决呢?采用有界队列 当workQueue达到预期值时就不要再塞任务了。

threadFactory

线程工厂。
顾名思义就是创建线程的工厂

RejectedExecutionHandler

拒绝策略。
啥时候会触发呢?比方说上面的场景任务巨多,还在给我安排任务,那么就会抛出 此异常 RejectedExecutionException。让其它线程去处理。
线程池提供了 AbortPolicy,DiscardPolicy,DiscardOldestPolicy,CallerRunsPolicy,自定义这五种拒绝策略,默认是 AbortPolicy。

相关文章

  • J.U.C——线程池专题

    主要讨论以下问题: 认识Java线程池 线程池的种类,区别,和使用场景 线程池的工作流程 线程池几个参数的理解 分...

  • Android 线程

    1、线程池的好处?四种线程池的使用场景,线程池的几个参数的理解? 使用线程池的好处在于,是可以减少在创建和销毁线程...

  • 线程池 参数理解

    线程池的的作用归根结底就是避免重复创建线程 带来的性能开销。下面来看看线程池的参数 所代表的意义,已经在线程池启动...

  • JAVA-线程池

    什么是线程池,为什么要用线程池? 线程池可以理解为:根据参数建立一套框架,并且预先创建一定量的线程,当有异步任务需...

  • Java线程总结 之 ThreadPool 线程池

    线程脑图 ThreadPool 线程池 线程池的构造参数 ----------------------------...

  • 出事以后才知道线程池参数不能随便设置,长记性了

    一、前言 相信作为安卓开发者来说,线程池应该不陌生,4种类型线程池也能随口说出,但是由于对线程池的参数理解不够深入...

  • java基础-多线程

    java线程池的实现 ThreadPoolExecutor java线程池几个参数 corePoolSize当线程...

  • 线程池知识个人总结及源码分析

    1 ThreadPoolExecutor 该线程池是比较常用的线程池。参数如下: 参数名解释corePoolSiz...

  • 线程池核心参数

    线程池核心参数 1)corePoolSize(线程池基本大小) 2)maximumPoolSize(线程池最大数量...

  • ThreadPool

    线程池核心参数 corePoolSize: int 核心线程数 线程池初始化后,线程池中没有任何线程,线程池会等待...

网友评论

      本文标题:线程池 参数理解

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