【Java成神之路】创建线程池的参数有哪些?

2022-04-15 10:25:15  晓掌柜  版权声明:本文为站长原创文章,转载请写明出处


一、线程池七大参数

    线程池一共有7大参数,分别为:核心线程数corePoolSize、最大线程数maxnumPoolSize、空闲线程存活时间keepAliveTime、线程存活时间的单位TimeUnite、任务队列workQueue、线程工厂ThreadFactory、拒绝策略RejectedExcutionHandleer

二、int corePoolSize 线程池中的常驻核心线程数

    在创建了线程池后,当有请求任务来之后,就会安排池中的线程在执行请求任务,近似理解为今日当值线程。在线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中。

    线程池就好比某一个银行网点,(1个)线程数就好比网点中的受理窗口,办理窗口业务(线程数量) 

三、int maximumPoolSize 最大线程数

    最大线程数,线程池能够容纳同时执行的最大线程数量,此值必须大于等于1.

四、long keepAliveTime 多余的空闲线程的存活时间

    当前线程池数量超过corePoolSize时,当前空闲时间达到lkeepAliveTime时,多余空闲线程会被销毁直到只剩下corePoolSize个线程为止。

五、TimeUnit unit

    keepAliveTime的单位,包括:

        TimeUnit.DAYS; //天

        Calendar.HOUR_OF_DAY //小时 是24小时制 

        Calendar.HOU //小时 是12小时制

        TimeUnit.MINUTES //分钟 

        TimeUnit.SECONDS //秒 

        TimeUnit.MILLISECONDS //毫秒 

六、BlockingQueue<Runnable> workQueue 任务队列

    任务队列,被提交但尚未被执行的任务,就好比去银行办理业务,银行的候客区,等待

七、ThreadFactory threadFactory 生成线程池中工作线程的线程工厂

    表示生成线程池中工作线程的线程工厂,用于创建线程,一般用默认的即可。

八、RejectedExecutionHandler handler 拒绝策略

    拒绝策略,表示当前队列满了并且工作线程大于等于线程池的最大线程数



最新评论: