java.util.concurrent Executors:线程池的工厂类,用来生产线程池
类中静态方法
static ExecutorService newFixedThreadPool(int nThreads)
创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。
参数:指定池中线程数量
返回值:ExecutorService接口,返回的是 ExecutorService 接口的实现类对象,可使用 ExecutorService 接口接收
ExecutorService接口的方法:
用来从线程池中获取线程,调用start方法,执行线程任务
Future<?> submit(Runnable task):提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。
关闭/销毁线程池的方法
void shutdown():启动一次顺序关闭,执行以前提交的任务,但不接受新任务。
案例
public class DemoThreadPool {
public static void main(String[] args) {
//创建线程池
ExecutorService es = Executors.newFixedThreadPool(2);
RunnableImpl runnableImpl = new RunnableImpl();
//线程池会一直开启,使用完线程,会自动把线程归还给线程池,线程可以继续使用
es.submit(runnableImpl);
es.submit(runnableImpl);
es.submit(runnableImpl);
}
}
class RunnableImpl implements Runnable{
@Override
public void run() {
System.out.println("当前线程是:" + Thread.currentThread().getName());
}
}
运行结果