写一下java实现的线程池代码
时间: 2023-07-11 09:53:22 浏览: 97
好的,下面是一个简单的Java实现的线程池代码:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPool {
private ExecutorService executor;
private int numThreads;
public ThreadPool(int numThreads) {
this.numThreads = numThreads;
executor = Executors.newFixedThreadPool(numThreads);
}
public void execute(Runnable task) {
executor.execute(task);
}
public void shutdown() {
executor.shutdown();
}
}
```
在这个线程池实现中,我们使用了Java内置的 `ExecutorService` 接口来管理线程池。在构造函数中,我们传入线程池中线程的数量,并使用 `Executors.newFixedThreadPool` 方法创建一个固定大小的线程池。
我们提供了一个 `execute` 方法,用于向线程池中添加任务,该方法接受一个实现了 `Runnable` 接口的任务。当有空闲线程时,线程池会自动分配任务,并在执行完后将线程重新放回线程池。
最后,我们提供了一个 `shutdown` 方法,用于停止线程池的运行。调用该方法后,线程池将会拒绝接收新的任务,并等待所有正在执行的任务完成后退出。
阅读全文