java语言写一个线程池,核心线程为4,最大线程100,
时间: 2024-05-05 11:22:10 浏览: 232
好的,以下是一个简单的 Java 线程池实现,核心线程数为 4,最大线程数为 100。
```java
import java.util.concurrent.*;
public class ThreadPoolDemo {
public static void main(String[] args) {
// 创建一个固定大小线程池,核心线程数为 4,最大线程数为 100
ExecutorService executor = new ThreadPoolExecutor(4, 100, 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
// 提交 10 个任务给线程池执行
for (int i = 0; i < 10; i++) {
executor.execute(new Task(i));
}
// 关闭线程池
executor.shutdown();
}
}
class Task implements Runnable {
private int taskId;
public Task(int taskId) {
this.taskId = taskId;
}
@Override
public void run() {
System.out.println("Task #" + taskId + " is running.");
}
}
```
上述代码中,我们使用了 `ThreadPoolExecutor` 来创建线程池,其中:
- `corePoolSize` 表示线程池中的核心线程数,这里设置为 4;
- `maximumPoolSize` 表示线程池中的最大线程数,这里设置为 100;
- `keepAliveTime` 表示线程池中非核心线程的存活时间,这里设置为 60 秒;
- `unit` 表示存活时间的单位,这里设置为秒;
- `workQueue` 表示用来存储任务的阻塞队列,这里使用了 `LinkedBlockingQueue`。
在主函数中,我们提交了 10 个任务给线程池执行,每个任务都是一个实现了 `Runnable` 接口的 `Task` 对象。最后,我们调用了 `shutdown()` 方法来关闭线程池。
阅读全文