如何在Java中实现线程池,提高并发效率
在Java中实现线程池主要通过ExecutorService接口和其子类如ThreadPoolExecutor来完成。以下是一个简单的例子:
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建线程池,核心线程数为2,最大线程数为10
ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(10);
// 提交任务到线程池
for (int i = 0; i < 50; i++) {
Runnable task = () -> System.out.println("Task " + i);
executor.execute(task);
}
// 关闭线程池,释放资源
executor.shutdown();
while (!executor.isTerminated()) {
// 等待所有任务完成
}
System.out.println("All tasks completed.");
}
}
在这个例子中,我们创建了一个固定大小的线程池,然后提交了50个任务到线程池。当所有的任务完成后,我们关闭线程池。
这样做的好处是,你可以预先设置好线程池的大小,避免在程序运行过程中频繁创建和销毁线程,从而提高并发效率。
还没有评论,来说两句吧...