假设创建了15个core size的固定大小线程池。
ThreadPoolExecutor discoveryPool = (ThreadPoolExecutor) Executors
.newFixedThreadPool(15);
发现,在跑的过程中,run线程因为异常报错, 结果 core size线程数也降了下来。不再是15个core size了。
请教这种情况应该如何避免?
------解决方案--------------------
应该会自动加上去的吧
------解决方案--------------------
试验了一下,10个线程,5个抛出异常
最后用discoveryPool.getCorePoolSize()得到的值还是10
------解决方案--------------------
应该是线程池里没有一个活着的线程了,当没有任务提交的时候它不会自动创建线程
如果执行完抛出异常的代码再有其它不抛异常的任务提交,就不会退出了