任务队列
2021/4/25 18:25:19
本文主要是介绍任务队列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、线程池
测试类TestTask运行时会启动多个缓存线程池,缓存线程池的数量根据服务器配置动态获取;
二、优缺点
优点:可异步,异步任务量较大,对于中型项目、产品,这样的异步处理机制是完全满足要求的; 缺点:由于任务执行者需要一直监测任务队列是否还有要执行的任务,所以会导致即使缓存线程池超时,也不会自动销毁,消耗资源;
三、结果
运行TestRunable.java:
当前缓存线程池,java.util.concurrent.ThreadPoolExecutor@4e25154f[Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0] 缓存线程池测试 2021-04-25 17:37:40 2021-04-25 17:37:41 2021-04-25 17:37:42 2021-04-25 17:37:43 2021-04-25 17:37:44 缓存线程池已自动关闭,java.util.concurrent.ThreadPoolExecutor@4e25154f[Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1] 缓存线程池中的线程是否已全部执行完,false 缓存线程池是否已关闭,false
运行TestTask.java:
欢迎测试任务队列。。 请输入你本次要执行的异步任务个数: 1 第1个工人已在线 第2个工人已在线 任务队列已激活 第3个工人已在线 任务队列已激活 第4个工人已在线 任务队列已激活 任务队列已激活 当前任务计数小于最大任务量,正在唤醒,curr=0,MAX_TASK=1 异步任务队列测试,0 当前线程号:pool-1-thread-2,第1次执行异步任务,finishedTasks={pool-1-thread-2=1} 请输入你本次要执行的异步任务个数: 2 异步任务队列测试,0 当前任务计数小于最大任务量,正在唤醒,curr=0,MAX_TASK=1 异步任务队列测试,1 当前线程号:pool-1-thread-1,第1次执行异步任务,finishedTasks={pool-1-thread-1=1, pool-1-thread-2=1, pool-1-thread-4=1} 当前线程号:pool-1-thread-4,第1次执行异步任务,finishedTasks={pool-1-thread-2=1, pool-1-thread-4=1} 请输入你本次要执行的异步任务个数: 3 异步任务队列测试,0 异步任务队列测试,1 当前线程号:pool-1-thread-1,第2次执行异步任务,finishedTasks={pool-1-thread-1=2, pool-1-thread-2=1, pool-1-thread-4=1} 当前任务计数小于最大任务量,正在唤醒,curr=0,MAX_TASK=1 当前线程号:pool-1-thread-3,第1次执行异步任务,finishedTasks={pool-1-thread-1=2, pool-1-thread-3=1, pool-1-thread-2=1, pool-1-thread-4=1} 异步任务队列测试,2 当前线程号:pool-1-thread-4,第2次执行异步任务,finishedTasks={pool-1-thread-1=2, pool-1-thread-3=1, pool-1-thread-2=1, pool-1-thread-4=2} 请输入你本次要执行的异步任务个数: 0 结束!
四、项目源码见:
https://www.edspace.com.cn/pc/toLookLinkShareUI?shareUrl=21aaca33-e237-6e0a-3390-874c92405e80
*该机制模拟的线程安全中的生产者和消费者案例,关于线程安全的入门了解,可参考【java并发编程应用实例】
*有更多处理任务队列的方法,欢迎留言
这篇关于任务队列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-29设计Element UI表单组件居然如此简单!
- 2024-12-28一步到位:购买适合 SEO 的域名全攻略
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南