通过Executors静态工厂构建线程池
时间: 2023-04-04 09:03:03 浏览: 64
可以使用Executors静态工厂构建线程池,例如:
ExecutorService executorService = Executors.newFixedThreadPool(10);
这将创建一个固定大小为10的线程池。
相关问题
executors可以创建哪些线程池
?答:executors可以创建以下类型的线程池:
1. FixedThreadPool(固定线程池):固定线程数量,适用于执行长期的任务。
2. CachedThreadPool(缓存线程池):线程数量不固定,根据需要创建新线程。适用于执行短期的任务。
3. SingleThreadExecutor(单线程池):只有一个线程的线程池。适用于需要顺序执行任务的场景。
4. ScheduledThreadPool(定时线程池):定时执行任务的线程池。适用于需要延迟执行或定时执行的任务。
Executors.newFixedThreadPool 线程池设置名称
你可以使用以下代码来创建一个带有名称的固定大小线程池:
```java
ExecutorService executor = Executors.newFixedThreadPool(n, new ThreadFactory() {
private AtomicInteger count = new AtomicInteger(0);
@Override
public Thread newThread(Runnable r) {
return new Thread(r, "MyThreadPool-" + count.incrementAndGet());
}
});
```
其中,`n` 是线程池的大小,`ThreadFactory` 是用于为线程池中的每个线程创建一个对应的线程对象的工厂类。在上述代码中,我们创建了一个匿名内部类实现了 `ThreadFactory` 接口,并在 `newThread` 方法中为每个线程设置了名称。名称的格式是 `MyThreadPool-1`、`MyThreadPool-2`、`MyThreadPool-3` 等等。