线程池工具类——Thread学习笔记

2024-09-07 08:32

本文主要是介绍线程池工具类——Thread学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

记录一下线程池工具类:

/*** 线程池工具类* @author lixiang* @date 2018年10月10日 - 11:10* @history 2018年10月10日 - 11:10 lixiang create.*/
public class ThreadPoolHelper {private static final Logger logger = LoggerFactory.getLogger(ThreadPoolHelper.class);private static final int POOL_SIZE = 40;//线程池大小//创建线程池private static ThreadPoolExecutor taskPool =(ThreadPoolExecutor) new ScheduledThreadPoolExecutor(POOL_SIZE,new BasicThreadFactory.Builder().namingPattern("example-schedule-pool-%d").daemon(true).build());/*** 执行任务* @author lixiang* @date 2018年10月10日 - 11:12* @history 2018年10月10日 - 11:12 lixiang create.*/public static void executeTask(Runnable comitTask) {taskPool.execute(comitTask);logger.debug("【线程池任务】线程池中线程数:" + taskPool.getPoolSize());logger.debug("【线程池任务】队列中等待执行的任务数:" + taskPool.getQueue().size());logger.debug("【线程池任务】已执行完任务数:" + taskPool.getCompletedTaskCount());}/*** 关闭线程池* @author lixiang* @date 2018年10月10日 - 11:15* @history 2018年10月10日 - 11:15 lixiang create.*/public static void shutdown() {logger.debug("shutdown taskPool...");taskPool.shutdown();try {if (!taskPool.isTerminated()) {logger.debug("直接关闭失败[" + taskPool.toString() + "]");taskPool.awaitTermination(3, TimeUnit.SECONDS);if (taskPool.isTerminated()) {logger.debug("成功关闭[" + taskPool.toString() + "]");} else {logger.debug("[" + taskPool.toString() + "]关闭失败,执行shutdownNow...");if (taskPool.shutdownNow().size() > 0) {logger.debug("[" + taskPool.toString() + "]没有关闭成功");} else {logger.debug("shutdownNow执行完毕,成功关闭[" + taskPool.toString() + "]");}}} else {logger.debug("成功关闭[" + taskPool.toString() + "]");}} catch (InterruptedException e) {logger.warn("接收到中断请" + taskPool.toString() + "停止操作");}}
}

如有问题还请不吝赐教!!!

这篇关于线程池工具类——Thread学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144575

相关文章

Java中如何正确的停掉线程

《Java中如何正确的停掉线程》Java通过interrupt()通知线程停止而非强制,确保线程自主处理中断,避免数据损坏,线程池的shutdown()等待任务完成,shutdownNow()强制中断... 目录为什么不强制停止为什么 Java 不提供强制停止线程的能力呢?如何用interrupt停止线程s

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

MySQL慢查询工具的使用小结

《MySQL慢查询工具的使用小结》使用MySQL的慢查询工具可以帮助开发者识别和优化性能不佳的SQL查询,本文就来介绍一下MySQL的慢查询工具,具有一定的参考价值,感兴趣的可以了解一下... 目录一、启用慢查询日志1.1 编辑mysql配置文件1.2 重启MySQL服务二、配置动态参数(可选)三、分析慢查

SpringBoot实现虚拟线程的方案

《SpringBoot实现虚拟线程的方案》Java19引入虚拟线程,本文就来介绍一下SpringBoot实现虚拟线程的方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录什么是虚拟线程虚拟线程和普通线程的区别SpringBoot使用虚拟线程配置@Async性能对比H

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和