
# 1 简介
统一线程池管理提供线程使用生命周期管理,在用户使用完线程返回线程池时,统一会线程变量清理和资源回收等工作,在苍穹中使用新线程或线程池,需要使用线程池管理提供。
使用平台封装后的线程池会带来如下好处:
+ 统一管理和监控,比如监控总共创建了多少个线程,当前活动线程数。
+ 避免线程变量干扰,使用完线程返回线程池时,统一会线程变量清理和资源回收等工作。
+ 可传递requestcontext上下文到线程池线程中。
+ 相对jdk线程池做了更多优化,当线程池任务满时,不丢任务,更符合我们erp业务场景。
+ 做了限制,数据访问必须在被管理线程中运行,即线程池创建线程。
# 2 应用场景
在需要多线程的各个场景,线程池都适用。
# 3 接口说明
线程池相关接口定义和实现存在于bos-framework-1.0.jar中。对使用者来说只需通过kd.bos.threads.ThreadPools类的相关方法创建线程池,然后在调用返回的线程池对象的相关方法就可以执行多线程执行任务。
## 3.1 接口列表
***ThreadPools***
| 静态方法 | 说明 |
| - | - |
| executeOnce | 执行一次 |
| executeOnceIncludeRequestContext | 携带Request Context执行一次 |
| newCachedThreadPool | 创建可缓存线程池(返回ThreadPool接口) |
| newFixedThreadPool | 创建固定线程池(返回ThreadPool接口) |
| newCachedExecutorService | 创建可缓存线程池(返回jdk的ExecutorService接口) |
| newExecutorService | 创建固定线程池(返回jdk的ExecutorService接口) |
***ThreadPool***
| 接口方法 | 说明 |
| - | - |
| execute