对ThreadPoolExecutor线程启动时机的误解
为了便于简化日志,上一个小一些的数字
[code]
private final static ThreadPoolExecutor threadPool = new ThreadPoolExecutor(1, 3, 60L, TimeUnit.SECONDS, //
new ArrayBlockingQueue(5), //
new TestThreadFactory(), //
new TestRejectedHandler());
[/code]
核心线程数是1,最大线程数是3。
按自然的理解方式,线程的规则应该是:在不超总线程数的基础上,尽最大可能让队列空。
也就是说:有三个需要同时处理的任务时,应该启用三个线程。