**线程池的七大参数**:
1.corePoolSize:线程池中的常驻核心线程数
2.maxinumPoolSize:线程池中能够容纳同时执行的最大线程数,此值必须大于等于一
3.keepAliveTime:多余的空闲线程的存活时间。
当前线程池数量超过corePoolSize时,当空闲时间达到keepAliveTime时,多余空闲线程会被销毁直到只剩下corePoolSize个线程为止。
4.unit:keepAliveTime的单位
5.workQueue:任务队列,被提交但是尚未被执行的任务。
6.threadFactory:表示生成线程池中工作线程的线程工厂,用于创建线程一般用默认的即可。
7.handler:拒绝策略,表示当队列满了并且工作线程-大于等于线程池的数量最大线程数(maxinumPoolSize)时如何来拒绝请求执行的runnable的策略。
示例:
线程池=银行网点
物理上的受理窗口,办理业务窗口
threadFactory默认->银行网点的logo/工作人员的制服和胸卡
1.当只有两个请求线程时,直接来到线程池中的核心线程中
2.当线程池核心线程被占用时,又来了三个请求,进入阻塞队列排队等待
3.再一次增加两个请求,启用临时线程,将阻塞队列中的请求,放置到临时线程中,新的请求加入到阻塞队列
4.当又有多的请求进入时,阻塞队列已满,启用拒绝策略
5.在keepAliveTime的时间内,没有多余的线程请求了,就会销毁三个临时线程
相关文章
暂无评论...