4.提交完所有任务后,推荐使用shutdown()关闭线程池,可以确保已经任务都完成,不推荐用shutdownForce(),可能有已提交任务只做了一部分或者没做,只在任务结果不重要,快速关闭并释放资源采用
ThreadPool threadPool = new ThreadPool(8); // 创建最大线程数为8的线程池
threadPool.commitTask(runnableObject); // 提交1个任务,多次提交不限量,但要保证任务能在有限时间内完成,不然会耗尽线程池!!!
/**
* threadPool.idleThreads()获取空闲线程数,任务量大,任务多,空闲数会少
* threadPool.maxThreads()获取最大线程数
* threadPool.currentThreads()获得已有线程数,初始为0,随着需要逐渐增大到最大线程数
*/
threadPool.shutdown(); // 温和关闭线程池,保证所有已提交任务完成
// 不推荐threadPool.shutdownForce(),可能导致已提交任务未做或者没做完,除非不关心结果,只想快速结束线程并释放资源