Java并发编程(八):线程调度——线程池
new Thread的弊端
执行一个异步任务你还只是如下new Thread吗?
new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start();
说说弊端:
a. 每次new Thread新建对象性能差。
b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。
c. 缺乏更多功能,如定时执行、定期执行、线程中断。
线程池好处
相比new Thread,Java提供的四种线程池的好处在于:
a. 重用存在的线程,减少对象创建、消亡的开销,性能佳。
b. 可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。
c. 提供定时执行、定期执行、单线程、并发数控制等功能。
ThreadPoolExecutor介绍:线程池ThreadPoolExecutor类的使用
Java里常用线程池介绍:java.util.concurrent.Executors类的常用方法介绍
Executor, ExecutorService 和 Executors 间的区别与联系