Java创建线程池的方式
时间: 2023-06-28 08:04:30 浏览: 128
在Java中创建线程池有两种方式,分别是通过ThreadPoolExecutor类和Executors类。
1. 通过ThreadPoolExecutor类创建线程池
ThreadPoolExecutor类是一个线程池的实现类,通过它我们可以自定义线程池的核心线程数、最大线程数、线程存活时间、任务队列等参数,具体实现如下:
```
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.MILLISECONDS, workQueue);
```
其中,各参数含义如下:
- corePoolSize:线程池中的核心线程数;
- maximumPoolSize:线程池中允许的最大线程数;
- keepAliveTime:线程池中非核心线程的空闲存活时间;
- TimeUnit:keepAliveTime的时间单位,常用的有TimeUnit.MILLISECONDS(毫秒)、TimeUnit.SECONDS(秒);
- workQueue:线程池中的任务队列,常用的有SynchronousQueue(同步队列)、LinkedBlockingQueue(链式阻塞队列)。
2. 通过Executors类创建线程池
Executors类是一个线程池的工具类,它提供了多种线程池的创建方式,如下所示:
```
ExecutorService threadPool = Executors.newFixedThreadPool(nThreads);
```
其中,nThreads为线程池中的线程数。
除了newFixedThreadPool(),还有newCachedThreadPool()(创建可缓存线程池)、newSingleThreadExecutor()(创建单线程线程池)等多种创建方式,可以根据实际需求选择适合的方式。
阅读全文