import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
public class ThreadPoolExample {
public static void main(String[] args) {
// 创建一个固定大小的线程池,线程池中有3个线程
ExecutorService executorService = Executors.newFixedThreadPool(3);
// 将ExecutorService转换为ThreadPoolExecutor以便获取更多线程池信息
if (executorService instanceof ThreadPoolExecutor) {
ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executorService;
// 提交任务到线程池中执行
for (int i = 0; i < 10; i++) {
threadPoolExecutor.submit(() -> {
System.out.println("Task is running in thread: " + Thread.currentThread().getName());
});
}
// 关闭线程池
threadPoolExecutor.shutdown();
}
}
}
Executors.newFixedThreadPool(3)创建了一个固定大小为3的线程池。这意味着线程池中最多同时运行3个线程。ExecutorService转换为ThreadPoolExecutor,以便可以访问更多关于线程池的详细信息和配置。submit()方法向线程池提交了10个任务。每个任务会打印当前执行任务的线程名称。shutdown()方法来优雅地关闭线程池,确保所有已提交的任务都执行完毕后再关闭。如果你需要更复杂的线程池配置(如自定义核心线程数、最大线程数、队列等),可以使用ThreadPoolExecutor的构造函数进行更详细的配置。
上一篇:java nohup
下一篇:java urldecoder
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站