Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java threadpoolexecutor

作者:﹏〃对不起╮他是为你哭了   发布日期:2025-05-18   浏览:110

import java.util.concurrent.*;

public class ThreadPoolExecutorExample {
    public static void main(String[] args) {
        // 创建一个线程池,核心线程数为2,最大线程数为4,空闲线程存活时间为60秒,使用LinkedBlockingQueue作为任务队列
        ThreadPoolExecutor executor = new ThreadPoolExecutor(
            2, 
            4, 
            60L, 
            TimeUnit.SECONDS, 
            new LinkedBlockingQueue<>()
        );

        // 提交多个任务给线程池执行
        for (int i = 0; i < 10; i++) {
            int taskId = i;
            executor.submit(() -> {
                System.out.println("Executing task " + taskId + " by thread " + Thread.currentThread().getName());
                try {
                    // 模拟任务执行时间
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("Task " + taskId + " completed");
            });
        }

        // 关闭线程池
        executor.shutdown();
        try {
            // 等待所有任务完成
            if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {
                executor.shutdownNow();
            }
        } catch (InterruptedException e) {
            executor.shutdownNow();
        }
    }
}

解释说明:

  1. 创建线程池:我们使用ThreadPoolExecutor来创建一个自定义的线程池。线程池的核心线程数为2,最大线程数为4,空闲线程存活时间为60秒,使用LinkedBlockingQueue作为任务队列。
  2. 提交任务:通过submit方法向线程池提交10个任务,每个任务会打印当前执行的任务ID和执行该任务的线程名称,并模拟2秒的任务执行时间。
  3. 关闭线程池:调用shutdown方法来关闭线程池,然后使用awaitTermination等待所有任务完成。如果在指定时间内未能完成所有任务,则调用shutdownNow强制关闭线程池。

上一篇:java本地缓存

下一篇:nextint在java中的用法

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站