Executors.newFixedThreadPool使用方法
时间: 2024-06-16 21:06:41 浏览: 155
Executors.newFixedThreadPool是Java中的一个线程池工具类,用于创建一个固定大小的线程池。它的使用方法如下:
1. 导入必要的包:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
```
2. 创建一个固定大小的线程池:
```java
int poolSize = 5; // 线程池大小
ExecutorService executor = Executors.newFixedThreadPool(poolSize);
```
3. 提交任务给线程池执行:
```java
executor.execute(new Runnable() {
@Override
public void run() {
// 执行任务的代码
}
});
```
4. 关闭线程池:
```java
executor.shutdown();
```
相关问题
Executors.newFixedThreadPool
引用中的源码展示了`Executors`类中的`newFixedThreadPool`方法的实现。该方法返回一个`ThreadPoolExecutor`对象,它是一个固定大小的线程池。通过参数可以指定线程池的大小,同时使用了`LinkedBlockingQueue`作为任务队列。中提到,`newFixedThreadPool`返回的`ThreadPoolExecutor`对象被`FinalizableDelegatedExecutorService`包装,而`newSingleThreadExecutor`返回的`ThreadPoolExecutor`对象也是被包装过的。这些包装类都实现了`ThreadPoolExecutor`接口。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Java 中 Executors.newSingleThreadExecutor() 与Executors.newFixedThreadPool(1)有什么区别](https://blog.csdn.net/lisheng19870305/article/details/118386729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
Executors.newFixedThreadPool的使用
Executors.newFixedThreadPool() 是 Java 并发编程中的一个方法,它返回一个 ExecutorService 对象,该对象表示一个线程池,该线程池具有固定数量的线程。你可以使用这个线程池来执行一系列任务。
这个方法接受一个整数参数,表示线程池中的固定线程数量。当你提交一个任务给这个线程池时,线程池会分配一个空闲线程来执行任务。如果当前没有空闲线程可用,任务会被添加到一个等待队列中,直到有线程可用为止。
例如,你可以这样使用 Executors.newFixedThreadPool() 方法创建一个具有 5 个线程的线程池:
```java
ExecutorService executor = Executors.newFixedThreadPool(5);
```
然后,你可以使用 executor 对象提交任务给线程池,例如:
```java
executor.submit(new RunnableTask());
```
在这个例子中,提交了一个实现了 Runnable 接口的任务对象 `RunnableTask` 给线程池。线程池会选择一个空闲的线程来执行该任务。
需要注意的是,一旦你不再需要使用这个线程池,你应该调用 `executor.shutdown()` 来关闭它,以释放资源。
希望这个解释能够帮助你理解 Executors.newFixedThreadPool() 的使用。如果还有其他问题,请随时提问!
阅读全文