线程池工具类——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 Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

Java中的xxl-job调度器线程池工作机制

《Java中的xxl-job调度器线程池工作机制》xxl-job通过快慢线程池分离短时与长时任务,动态降级超时任务至慢池,结合异步触发和资源隔离机制,提升高频调度的性能与稳定性,支撑高并发场景下的可靠... 目录⚙️ 一、调度器线程池的核心设计 二、线程池的工作流程 三、线程池配置参数与优化 四、总结:线程

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高

WinForm跨线程访问UI及UI卡死的解决方案

《WinForm跨线程访问UI及UI卡死的解决方案》在WinForm开发过程中,跨线程访问UI控件和界面卡死是常见的技术难题,由于Windows窗体应用程序的UI控件默认只能在主线程(UI线程)上操作... 目录前言正文案例1:直接线程操作(无UI访问)案例2:BeginInvoke访问UI(错误用法)案例

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected