2022-04-15 10:25:15 晓掌柜 版权声明:本文为站长原创文章,转载请写明出处
线程池一共有7大参数,分别为:核心线程数corePoolSize、最大线程数maxnumPoolSize、空闲线程存活时间keepAliveTime、线程存活时间的单位TimeUnite、任务队列workQueue、线程工厂ThreadFactory、拒绝策略RejectedExcutionHandleer
在创建了线程池后,当有请求任务来之后,就会安排池中的线程在执行请求任务,近似理解为今日当值线程。在线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中。
线程池就好比某一个银行网点,(1个)线程数就好比网点中的受理窗口,办理窗口业务(线程数量)
最大线程数,线程池能够容纳同时执行的最大线程数量,此值必须大于等于1.
当前线程池数量超过corePoolSize时,当前空闲时间达到lkeepAliveTime时,多余空闲线程会被销毁直到只剩下corePoolSize个线程为止。
keepAliveTime的单位,包括:
TimeUnit.DAYS; //天
Calendar.HOUR_OF_DAY //小时 是24小时制
Calendar.HOU //小时 是12小时制
TimeUnit.MINUTES //分钟
TimeUnit.SECONDS //秒
TimeUnit.MILLISECONDS //毫秒
任务队列,被提交但尚未被执行的任务,就好比去银行办理业务,银行的候客区,等待
表示生成线程池中工作线程的线程工厂,用于创建线程,一般用默认的即可。
拒绝策略,表示当前队列满了并且工作线程大于等于线程池的最大线程数