一。java线程池的优点:
1. 降低资源消耗。可实现线程复用,减少在创建和销毁线程上所花的时间以和系统资源的开销
2.提升线程响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
3.提高线程管理性。提供可缓存,定时、定期执行、单线程、并发数控制等功能。
二。线程池的种类:
1.newFixedThreadPool 固定数量的线程池,线程数量始终不变。
有任务提交,如有空闲的线程则优先复用空闲线程;
如果没有,任务提交到池队列中,等待空闲线程。
线程任务完成后,都返回线程池,标志为空闲,等待复用。
2.newCachedThreadPool 可缓存的线程池。
有任务提交,如有空闲的线程则优先复用空闲线程;
如没有,则会创建新的线程
线程任务完成后,都返回线程池,标志为空闲,等待复用。
终止并从缓存中移除那些已有 60 秒钟未被使用的线程。
3. newScheduleThreadPool 创建一个指定大小的线程池,它可安排在给定延迟后运行命令或者定期地执行
4.newSingleThreadExecutor 返回只有一个线程的线程池。
如有多余的任务提交,任务提交到池队列中,待线程空闲,按照先进先出(FIFO)的顺序执行任务。