Java线程池类ThreadPoolExecutor浅析
摘要: 线程池的特点是将任务的提交和执行分开。这样做的好处是,能使处理器尽量多地同时执行任务。
1.当工人数量没有达到最小雇佣数量时,每当任务来临,线程池都要创建一个工人,把工人加入工人集合。
2.如果任务来临时,当前工人数量poolSize已经大于最小雇佣数量,线程池尝试把任务加入任务列表,如果成功,任务提交的步骤就结束了。
2.5.工人会不断地尝试从队列里获取任务,如果获取到任务(请看5),工人就把任务拿去执行。这是任务的执行步骤。
3.如果加入队列失败,再雇佣一个工人或者
4.拒绝该任务。
5.工人等待任务的策略分两种(本文不考虑生命周期和状态):死等!在给定时间内等。
6.没有任务则把该工人的线程结束。
7.没有拿到任务的工人,被清除出工人集合。
阅读全文