[发明专利]一种基于线程池的任务执行方法及装置在审
申请号: | 202110330721.9 | 申请日: | 2021-03-26 |
公开(公告)号: | CN112835705A | 公开(公告)日: | 2021-05-25 |
发明(设计)人: | 杨鹏宇;徐克宝;吴成龙;施生燊 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 任默闻;王涛 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 线程 任务 执行 方法 装置 | ||
本发明提供了一种基于线程池的任务执行方法及装置,所述方法包括:接收第一任务请求;基于所述第一任务请求判断第一缓存中是否包含第二任务列表;所述第二任务列表包含线程池丢弃的第二任务;若是,则判断阻塞队列是否已满;若否,则将第一缓存中的第二任务列表提供至所述阻塞队列,并清空所述第一缓存中的所述第二任务列表。上述方法将原有根据饱和策略丢弃的第二任务保存在第三方缓存中间件中,当有新的第一任务请求来临时,并不直接处理第一任务,而是先处理之前执行饱和策略所丢弃的第二任务,从而进行已丢失任务补偿调起,避免了因为系统承载能力不允许的情况下出现丢失任务的可能,使得应用可从容应对线程池超出实际承载容量的极端情况。
技术领域
本发明涉及计算机多线程任务执行领域,具体涉及一种基于线程池的任务执行方法及装置。
背景技术
线程是一种珍贵、有限的计算机资源,如果无限制的创建,不仅会消耗系统资源,还会因为线程的分配失衡导致系统稳定性的降低。对线程的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。线程池是一种基于“池化”思想管理线程的工具,经常出现在多线程服务器中,如MySQL。“池化”是一种为了取得收益最大化,风险最小化而将资源归集到一起进行统一管理,统一维护的思想。线程池通过连接复用,降低线程创建和销毁的资源消耗,从而降低了计算机系统关键资源(如CPU、内存)的消耗,进一步提高了线程的获取效率,从而提升整体系统的响应速度;假设线程创建时间T1,线程执行时间T2,线程销毁时间T3;线程池可免去大多数线程创建和销毁时的T1,T3时间,需要进行多线程操作时只需要从池中获取一个已建好的线程。线程池进一步提高了线程的可管理性,建立了多个线程使用时统一的分配,调优和监控,同时从设计层面防止了线程泄露未回收的情况。在计算机领域中“池化”思想的表现为:统一管理IT资源,包括服务器、存储、和网络资源等等。通过共享资源,使用户在低投入中获益。除了线程池,还有其他比较典型的集中使用策略包括:1.内存池(Memory Pooling):预先申请内存,提升申请内存速度,减少内存碎片。2.连接池(Connection Pooling):预先申请数据库连接,提升申请连接的速度,降低系统的开销。3.实例池(Object Pooling):循环使用对象,减少资源在初始化和释放时的昂贵损耗。
具体到java1.8源码中的线程池类结构中,线程池最底层的类是线程池执行器(ThreadPoolExecutor),而ThreadPoolExecutor实现的顶层接口是执行器(Executor),Executor提供了一种思想:将任务提交和任务执行过程分离解耦。用户无需关注如何创建线程,如何调度线程来执行任务,用户只需提供可运行(Runnable)对象,将任务的运行逻辑提交到Executor中,由Executor框架完成线程的调配和任务的执行部分。执行器服务(ExecutorService)接口增加了一些异步返回、管理线程池启停的能力。抽象执行器服务(AbstractExecutorService)则是上层的抽象类,将执行任务的流程串联了起来,保证下层的实现只需关注一个执行任务的方法即可。最下层的实现类ThreadPoolExecutor实现最复杂的运行部分,ThreadPoolExecutor一方面维护自身生命周期,一方面管理线程池和任务,是实际执行单元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110330721.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:话术推荐方法及装置
- 下一篇:一种发电机组电力输出稳定性检测系统