七大参数:
- 线程池最大容量 corePoolSize
- 线程池核心线程数 maximumPoolSize
- 线程生命时间 keepAliveTime
- 线程生命时间的单位 unit
- 阻塞队列 workQueue
- 线程池工厂 threadFactory
- 拒绝策略 handler
运行机制:
- 向线程池提交任务时,查看核心线程是否满了,没满就新建一个线程来执行任务,满了就去看阻塞队列。
- 阻塞队列满了吗?阻塞队列没满就进入阻塞队列等待。满了就去看整个线程池。
- 线程池满了吗?满了就决绝任务不处理,没满就创建额外线程来处理。
- 额外线程处理完后销毁。
就好比有人来你家开的洗浴城洗脚,进来肯定要安排一个好技师(核心线程)对吧,好技师都在上工,腾不出手,先排一下队(阻塞队列),如果排队的人很多了,没办法了,这时候就去看看没那么好的技师,不巧,技师都在上工。但是还有空位(最大容量),只是没有技师了,没办法了,自己上阵(额外线程)服务一个先顶着吧,但是你是老板,所以你做完了就好累不想做了(销毁)。这时候又来了一个客人,怎么办呢,哪里都满了,只能不接客了(拒绝策略)。