引言
Executor框架是指JDK 1.5中引入的一系列并发库中与Executor相关的功能类,包括Executor、Executors、ExecutorService、Future、Callable等。
一、为什么要引入Executor框架?
1、如果使用new Thread(...).start()
的方法处理多线程,有如下缺点:
- 开销大。对于JVM来说,每次新建线程和销毁线程都会有很大的开销。
- 线程缺乏管理。没有一个池来限制线程的数量,如果并发量很高,会创建很多线程,而且线程之间可能会有相互竞争,这将会过多占用系统资源,增加系统资源的消耗量。而且线程数量超过系统负荷,容易导致系统不稳定。
2、使用线程池的方法,有如下优点:
- 线程复用。通过复用创建了的线程,减少了线程的创建、消亡的开销。
- 有效控制并发线程数。
- 提供了更简单灵活的线程管理。可以提