线程工具类

March 16, 2025 · View on GitHub

使用演示类 ThreadUse 介绍了配置参数及使用

项目类结构 - 包目录

  • 线程池管理 - 开发类(DevThreadManager):内部封装 DevThreadPool 配置处理,方便直接使用

  • 线程池 - 开发类(DevThreadPool):具体线程池操作方法、线程处理等

API 文档

方法注释
getInstance获取 DevThreadManager 实例
initConfig初始化配置信息
putConfig添加配置信息
removeConfig移除配置信息
方法注释
execute加入到线程池任务队列
shutdownshutdown 会等待所有提交的任务执行完成, 不管是正在执行还是保存在任务队列中的已提交任务
shutdownNowshutdownNow会尝试中断正在执行的任务(其主要是中断一些指定方法如sleep方法), 并且停止执行等待队列中提交的任务
isShutdown判断线程池是否已关闭 = isShutDown当调用shutdown()方法后返回为 true
isTerminated若关闭后所有任务都已完成, 则返回 true.
awaitTermination请求关闭、发生超时或者当前线程中断
submit提交一个Callable任务用于执行
invokeAll执行给定的任务
invokeAny执行给定的任务
schedule延迟执行Runnable命令
scheduleWithFixedRate延迟并循环执行命令
scheduleWithFixedDelay延迟并以固定休息时间循环执行命令

使用示例

Runnable runnable = new Runnable() {
    @Override
    public void run() {

    }
};

// = 优先判断 10个线程数, 的线程池是否存在, 不存在则创建, 存在则复用 =
DevThreadManager.getInstance(10).execute(runnable);

// 与上面 传入 int 是完全不同的线程池
DevThreadManager.getInstance("10").execute(runnable);

// 可以先增加配置
DevThreadManager.putConfig("QPQP", new DevThreadPool(DevThreadPool.DevThreadPoolType.CALC_CPU));
// 使用配置的信息
DevThreadManager.getInstance("QPQP").execute(runnable);


DevThreadManager.putConfig("QQQQQQ", 10);
// 使用配置的信息
DevThreadManager.getInstance("QQQQQQ").execute(runnable);