Java里面线程池的顶级接口是java.util.concurrent.Executor
,但是严格意义上讲Executor
并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是java.util.concurrent.ExecutorService
。
要配置一个线程池是比较复杂的,尤其是对于线程池的原理不是很清楚的情况下,很有可能配置的线程池不是较优的,因此在java.util.concurrent.Executors
线程工厂类里面提供了一些静态工厂,生成一些常用的线程池。官方建议使用Executors工程类来创建线程池对象。
Executors类
中的静态方法:
static ExecutorService newFixedThreadPool(int nThreads)
创建一个可重用固定线程数的线程池
- 参数:
int nThreads
:创建线程池中包含的线程数量 - 返回值:
ExecutorService接口
,返回的是ExecutorService接口的实现类对象,我们可以使用ExecutorService接口接收(面向接口编程),返回接口的意思是,返回值用接口接收,但是实际写的返回值是那个接口的实现类对象,通过这样,能让写这个方法的人能够返回那个接口的不同实现类。
java.util.concurrent.ExecutorService
:线程池接口
用来从线程池中获取线程,调用start方法,执行线程任务
submit(Ru