利用Executors创建不同的线程池
1.newFixedThreadPool(int nThreads)
2.newCachedThreadPool()
3.newSingleThreadExecutor()
4.newSingeThreadScheduledExecutor() 和 newScheduledThreadPool(int corePoolSize)
5.newWorkStealingPool()
Fork/Join框架
把大任务分割成若干个小任务并行执行,最终汇总每个小任务结果后得到大任务结果的框架
线程池的状态
RUNNING
SHUTDOWN
STOP
TIDYING
TERMINATED
线程池大小如何选定
CPU密集型:线程数=按照核数或者核数+1设定
IO密集型:线程数=CPU核数*(1+平均等待时间/平均工作时间)