sw 多线程_GitHub - swvon/threadpool4j: 轻量级多线程池。1)支持异步任务分派至不同的线程池执行;2)支持并行执行多个异步任务;3)支持需要返回结果和不需要返回结果的异步...

在软件架构和设计中,会尽可能地将操作异步化,缩短响应时间,提升性能。

将异步任务放入线程池,这是许多人都知道的。但是当异步任务多了之后,如果全放在同一个线程池执行,会出现一些问题:

不同任务因其执行的操作不同,所需时间不同。如果有大量执行时间较久的异步任务,会阻塞那些执行非常快的异步任务,导致原本很快可以完成的异步任务也变慢。

操作本地内容的异步任务和操作远程内容的异步任务。如果放在同一个线程池中,在网络出现故障的情况下,会出现大量的任务积压,导致执行本地内容的异步任务也受影响。

现实生活中,机动车行驶时,会根据行驶的速度划分超车道、快车道、慢车道和应急车道,避免速度慢的车辆阻塞速度快的车辆。

%E5%A4%9A%E8%BD%A6%E9%81%93.jpg

同理,将异步任务放入不同的线程池执行,就可以解决上面的两个问题。

threadpool4j是一个实现了多线程池的类库,解决了上述的问题。可指定不同的异步任务在不同的线程池中运行,不同的线程池可配置不同大小。详细的特性说明如下:

特性

1、模块稳定。

已在实际的业务中应用,使用多线程池模块每天执行超过3亿个异步任务,运行稳定。

2、支持多个线程池。

每个线程池有独立的名称,可配置不同的线程数。

业务可根据异步任务的操作,将它们分发至不同的线程池,避免将所有的异步任务放在一个池中相互影响。

3、完善的统计和健康状态信息。

每分钟输出一次各个线程池的执行任务数和队列积压情况。

[2014-07-08 18:05:54] ~ ThreadPool:default, ActiveThread:0, TotalTask:327563397, CompletedTask:327563397, Queue:0

[2014-07-08 18:05:54] ~ ThreadPool:outer, ActiveThread:0, TotalTask:7033787, CompletedTask:7033787, Queue:0

[2014-07-08 18:05:54] ~ ThreadPool:account, ActiveThread:0, TotalTask:17359, CompletedTask:17359, Queue:0

[2014-07-08 18:05:54] ~ ThreadPool:channel, ActiveThread:0, TotalTask:7037913, CompletedTask:7037913, Queue:0

每分钟输出一次各个线程池的线程状态信息。

[2014-07-08 17:36:58] ~ ThreadGroup:channel-pool, New:0, Runnable:0, Blocked:0, Waiting:30, TimedWaiting:0, Terminated:0

[2014-07-08 17:36:58] ~ ThreadGroup:outer-pool, New:0, Runnable:0, Blocked:0, Waiting:10, TimedWaiting:0, Terminated:0

[2014-07-08 17:36:58] ~ ThreadGroup:account-pool, New:0, Runnable:0, Blocked:0, Waiting:30, TimedWaiting:0, Terminated:0

[2014-07-08 17:36:58] ~ ThreadGroup:default-pool, New:0, Runnable:1, Blocked:0, Waiting:29, TimedWaiting:1, Terminated:0

输出的日志信息对统计程序和统计脚本友好,容易切分。

4、使用和配置简单。

从多线程池模块复制biz/threadpool4j.xml配置文件,然后根据项目的实际需要简单修改即可(简单的项目不修改亦可使用)。

只需一行代码就可以执行异步任务。

5、初始化和关闭所有线程池简单。

应用启动时,执行一行代码可初始化配置文件中所有的线程池。

应用关闭时,执行一行代码可安全地关闭所有的线程池。

6、无框架依赖性。

不依赖特定的框架,适用于所有使用Java语言的应用。

文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值