创建一个固定大小的线程池
时间: 2024-09-28 22:17:04 浏览: 24
26_多线程_第1天(Thread、线程创建、线程池)_讲义
创建一个固定大小的线程池通常是为了有效地管理并发任务并避免过多地创建和销毁线程,提高系统的性能和资源利用率。在Java中,可以使用`java.util.concurrent.Executors`类提供的`newFixedThreadPool()`方法来创建一个固定的线程池。下面是一个简单的示例:
```java
import java.util.concurrent.*;
public class FixedThreadPoolExample {
public static void main(String[] args) {
// 线程池大小
int poolSize = 5;
// 创建线程池
ExecutorService executor = Executors.newFixedThreadPool(poolSize);
// 提交任务到线程池
for (int i = 0; i < 10; i++) {
Runnable worker = new WorkerThread("" + i);
executor.execute(worker); // 任务将按照提交的顺序执行
}
// 关闭线程池,防止新的任务加入
executor.shutdown();
try {
// 等待所有任务完成
if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {
executor.shutdownNow(); // 如果等待超时,强制停止剩余的任务
System.out.println("Pool did not terminate");
}
} catch (InterruptedException e) {
executor.shutdownNow();
Thread.currentThread().interrupt();
}
}
}
class WorkerThread implements Runnable {
private String command;
public WorkerThread(String s) {
this.command = s;
}
@Override
public void run() {
System.out.format("Worker %s is running...%n", command);
// 这里替换为你实际需要执行的任务
// ...
}
}
```
在这个例子中,一旦线程池满了,新提交的任务会排队等待,直到有线程空闲出来。
阅读全文