# Lancer-Dynamic-Thread-Pool **Repository Path**: wsgxl/Lancer-Dynamic-Thread-Pool ## Basic Information - **Project Name**: Lancer-Dynamic-Thread-Pool - **Description**: 动态线程池 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-12 - **Last Updated**: 2025-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Lancer-Dynamic-Thread-Pool ## 项目简介 Lancer-Dynamic-Thread-Pool 是一个基于 Spring Boot 的动态线程池管理组件,支持线程池配置的动态更新、监控和管理。适用于需要灵活调整线程池参数以优化系统性能的场景。 ## 功能特点 - **动态配置更新**:无需重启应用即可更新线程池配置。 - **线程池监控**:提供线程池状态监控接口,包括活跃线程数、队列大小等信息。 - **优雅关闭**:支持线程池的优雅关闭和强制关闭。 - **拒绝策略管理**:支持多种拒绝策略配置。 - **Web 控制台**:提供基于 HTML 的可视化线程池管理界面。 ## 快速开始 ### 环境要求 - Java 8 或更高版本 - Spring Boot 2.x - Maven 3.x ### Maven 依赖 在 `pom.xml` 中添加以下依赖: ```xml com.lancer lancer-dynamic-thread-pool-spring-boot-starter 1.0.0 ``` ### 配置示例 在 `application.yml` 中配置线程池参数: ```yaml lancer: dynamic: thread-pool: enable: true pool-name: default-pool core-pool-size: 10 max-pool-size: 20 keep-alive-time: 60 unit: SECONDS queue-capacity: 200 reject-enum: CALLER_RUNS ``` ## 使用方法 ### 启动应用 确保配置正确后,启动 Spring Boot 应用即可自动加载线程池配置。 ### 获取线程池实例 通过 `ThreadPoolServiceImpl` 获取线程池实例并提交任务: ```java @Autowired private ThreadPoolServiceImpl threadPoolService; public void executeTask(Runnable task) { ThreadPoolExecutor executor = threadPoolService.getThreadPoolByName("default-pool"); executor.execute(task); } ``` ### 动态更新配置 通过 `ThreadPoolManage` 更新线程池配置: ```java @Autowired private ThreadPoolManage threadPoolManager; public void updateThreadPool(ThreadPoolConfig config) { threadPoolManager.addOrUpdateThreadPool(config); } ``` ## 监控配置 ### 访问监控接口 提供 RESTful 接口用于查询和管理线程池: - **查询线程池列表** `GET /lancer-thread-pool/monitor/queryList` - **查询线程池详情** `GET /lancer-thread-pool/monitor/queryDetails?poolName=default-pool` - **关闭线程池** `GET /lancer-thread-pool/monitor/shutdown?poolName=default-pool&isForceStop=false` - **创建或更新线程池** `POST /lancer-thread-pool/monitor/buildOrUpdate` 请求体格式: ```json { "poolName": "new-pool", "corePoolSize": 15, "maxPoolSize": 25, "keepAliveTime": 120, "unit": "SECONDS", "queueCapacity": 300, "rejectEnum": "REJECT" } ``` ### 可视化监控页面 访问 `threadPool.html` 页面进行可视化线程池管理: ``` http://localhost:8080/threadPool.html ``` ## 代码调用示例 ```java // 获取线程池实例 ThreadPoolExecutor executor = threadPoolService.getThreadPoolByName("default-pool"); // 提交任务 executor.execute(() -> { System.out.println("Task is running..."); }); // 关闭线程池 threadPoolService.shutdownThreadPool("default-pool"); ``` ## 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。