基于动态线程池的服务处理方法和装置制造方法及图纸

技术编号:16546572 阅读:28 留言:0更新日期:2017-11-11 11:31
本申请公开了基于动态线程池的服务处理方法和装置。所述方法的一具体实施方式包括:接收用户的处理请求,其中,所述处理请求包括处理任务;从预设的服务队列集合中选出与所述处理请求具有相同处理任务的服务队列,将所述处理请求加入所述服务队列;分别计算处理所述服务队列集合中每个服务队列的处理请求需要的线程请求量;根据每个服务队列的处理请求需要的线程请求量和所述服务队列集合中全部服务队列的处理请求需要的总线程请求量之间的关系,分别从线程池中分配相应数量的线程到与所述服务队列集合中服务队列对应的服务线程池中。该实施方式实现了有效利用线程资源,按需分配线程。

Method and device for service processing based on dynamic thread pool

A service processing method and device based on dynamic thread pool is disclosed in this application. Including a specific embodiment of the method: receiving user request, processing, the processing request includes processing tasks; request processing tasks with the same service queue from preset service queue set with the selected processing, the processing request to join the service queue; processing the service queue each service queue in the collection request thread request calculated; according to the relationship between each service request queue thread request amount and the service queue queue all service requests in the total collection of threads need to request between the amount, respectively from the thread pool distribution corresponding to the number of threads the service queue service queue, set the corresponding service in the thread pool. This method realizes the effective use of thread resources and allocates threads according to requirements.

【技术实现步骤摘要】
基于动态线程池的服务处理方法和装置
本申请涉及计算机
,具体涉及互联网
,尤其涉及一种基于动态线程池的服务处理方法和装置。
技术介绍
当前,在多用户并发向服务器发出任务处理请求的场景下,大多采用多线程并行处理的方式处理,以充分利用服务器提高处理效率。在多用户并发任务请求处理服务的处理过程中,多采用采用静态的线程池,同一服务进程中的所有不同服务处理流程共享同一个线程池;不同服务处理流程对线程资源占用时长不同,导致不同服务处理流程因为共享的线程资源而相互影响和干扰,无法做到有效隔离;也无法在业务量高峰时保障高请求量的服务处理流程得到足够的线程资源。
技术实现思路
本申请的目的在于提出一种改进的基于动态线程池的服务处理方法和装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请提供了一种基于动态线程池的服务处理方法,所述方法包括:接收用户的处理请求,其中,所述处理请求包括处理任务;从预设的服务队列集合中选出与所述处理请求具有相同处理任务的服务队列,将所述处理请求加入所述服务队列;分别计算处理所述服务队列集合中每个服务队列的处理请求需要的线程请求量;根据每个服务队列的处理请求需要的线程请求量和所述服务队列集合中全部服务队列的处理请求需要的总线程请求量之间的关系,分别从线程池中分配相应数量的线程到与所述服务队列集合中服务队列对应的服务线程池中,所述服务队列集合中的服务队列分别与所述线程池中的服务线程池一一对应。在一些实施例中,所述线程池中包括至少两个服务线程池,所述线程池中不同服务线程池之间的线程相互隔离。在一些实施例中,所述服务队列集合中服务队列的数量与所述线程池中服务线程池的数量相同,其中,每个服务队列中的处理请求具有相同处理任务。在一些实施例中,所述根据每个服务队列的处理请求需要的线程请求量和所述服务队列集合中全部服务队列的处理请求需要的总线程请求量之间的关系,分别从线程池中分配相应数量的线程到与所述服务队列集合中服务队列对应的服务线程池中,包括:比较所述总线程请求量和所述线程池中全部线程的数量;如果所述线程池中全部线程的数量多于所述总线程需求数量,按照所述线程请求量从线程池中分配线程到与所述服务队列对应的服务线程池中;如果所述线程池中全部线程的数量少于所述总线程需求数量,按照所述线程请求量与所述总线程请求量的比值关系从线程池中分配线程到与所述服务队列对应的服务线程池中。在一些实施例中,所述如果所述线程池中全部线程的数量少于所述总线程需求数量,按照所述线程请求量与所述总线程请求量的比值关系从线程池中分配线程到与所述服务队列对应的服务线程池中,包括:所述服务队列依据所述处理请求到达的时间顺序向与所述服务队列对应的服务线程池请求线程;当所述处理请求结束后,将处理所述处理请求的线程返回线程池。在一些实施例中,所述如果所述线程池中全部线程的数量多于所述总线程需求数量,按照所述线程请求量从线程池中分配线程到与所述服务队列对应的服务线程池中,包括:将所述线程请求量和预设的服务线程池阈值比较;如果所述线程请求量大于或等于所述服务线程池阈值,从线程池中分配与所述服务线程池阈值数量相同的线程到与所述服务队列对应的服务线程池中。第二方面,本申请提供了一种基于动态线程池的服务处理装置,所述装置包括:接收单元,配置用于接收用户的处理请求,其中,所述处理请求包括处理任务;匹配单元,配置用于从预设的服务队列集合中选出与所述处理请求具有相同处理任务的服务队列,将所述处理请求加入所述服务队列;计算单元,配置用于分别计算处理所述服务队列集合中每个服务队列的处理请求需要的线程请求量;线程分配单元,配置用于根据每个服务队列的处理请求需要的线程请求量和所述服务队列集合中全部服务队列的处理请求需要的总线程请求量之间的关系,分别从线程池中分配相应数量的线程到与所述服务队列集合中服务队列对应的服务线程池中,所述服务队列集合中的服务队列分别与所述线程池中的服务线程池一一对应。在一些实施例中,所述线程池中包括至少两个服务线程池,所述线程池中不同服务线程池之间的线程相互隔离。在一些实施例中,所述服务队列集合中服务队列的数量与所述线程池中服务线程池的数量相同,其中,每个服务队列中的处理请求具有相同处理任务。在一些实施例中,所述线程分配单元进一步配置用于:比较所述总线程请求量和所述线程池中全部线程的数量;如果所述线程池中全部线程的数量多于所述总线程需求数量,按照所述线程请求量从线程池中分配线程到与所述服务队列对应的服务线程池中;如果所述线程池中全部线程的数量少于所述总线程需求数量,按照所述线程请求量与所述总线程请求量的比值关系从线程池中分配线程到与所述服务队列对应的服务线程池中。在一些实施例中,所述线程分配单元进一步配置用于:如果所述线程池中全部线程的数量少于所述总线程需求数量,所述服务队列依据所述处理请求到达的时间顺序向与所述服务队列对应的服务线程池请求线程;当所述处理请求结束后,将处理所述处理请求的线程返回线程池。在一些实施例中,所述线程分配单元进一步配置用于:如果所述线程池中全部线程的数量少于所述总线程需求数量,将所述线程请求量和预设的服务线程池阈值比较;如果所述线程请求量大于或等于所述服务线程池阈值,从线程池中分配与所述服务线程池阈值数量相同的线程到与所述服务队列对应的服务线程池中。本申请提供的基于动态线程池的服务处理方法和装置,通过将用户的处理请求计入到具有相同处理任务的服务队列中,计算服务队列集合中处理每个服务队列中处理请求需要的线程需求数量,根据务队列中处理请求需要的线程需求数量和处理务队列中集合中全部服务队里中的处理请求需要的总线程需求数量之间的关系,分别从线程池中分配相应数量的线程到与所述服务队列集合中服务队列对应的服务线程池中。实现了动态的按需分配线程池中的线程。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请可以应用于其中的示例性系统架构图;图2是根据本申请的基于动态线程池的服务处理方法的一个实施例的流程图;图3是根据本申请的基于动态线程池的服务处理方法的一个应用场景的示意图;图4是根据本申请的基于动态线程池的服务处理方法的又一个实施例的流程图;图5是根据本申请的基于动态线程池的服务处理方法的一个实施例的结构示意图;图6是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1示出了可以应用本申请的基于动态线程池的服务处理方法或基于动态线程池的服务处理装置的实施例的示例性系统架构100。如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连本文档来自技高网...
基于动态线程池的服务处理方法和装置

【技术保护点】
一种基于动态线程池的服务处理方法,其特征在于,所述方法包括:接收用户的处理请求,其中,所述处理请求包括处理任务;从预设的服务队列集合中选出与所述处理请求具有相同处理任务的服务队列,将所述处理请求加入所述服务队列;分别计算处理所述服务队列集合中每个服务队列的处理请求需要的线程请求量;根据每个服务队列的处理请求需要的线程请求量和所述服务队列集合中全部服务队列的处理请求需要的总线程请求量之间的关系,分别从线程池中分配相应数量的线程到与所述服务队列集合中服务队列对应的服务线程池中,所述服务队列集合中的服务队列分别与所述线程池中的服务线程池一一对应。

【技术特征摘要】
1.一种基于动态线程池的服务处理方法,其特征在于,所述方法包括:接收用户的处理请求,其中,所述处理请求包括处理任务;从预设的服务队列集合中选出与所述处理请求具有相同处理任务的服务队列,将所述处理请求加入所述服务队列;分别计算处理所述服务队列集合中每个服务队列的处理请求需要的线程请求量;根据每个服务队列的处理请求需要的线程请求量和所述服务队列集合中全部服务队列的处理请求需要的总线程请求量之间的关系,分别从线程池中分配相应数量的线程到与所述服务队列集合中服务队列对应的服务线程池中,所述服务队列集合中的服务队列分别与所述线程池中的服务线程池一一对应。2.根据权利要求1所述的方法,其特征在于,所述线程池中包括至少两个服务线程池,所述线程池中不同服务线程池之间的线程相互隔离。3.根据权利要求1所述的方法,其特征在于,所述服务队列集合中服务队列的数量与所述线程池中服务线程池的数量相同,其中,每个服务队列中的处理请求具有相同处理任务。4.根据权利要求1所述的方法,其特征在于,所述根据每个服务队列的处理请求需要的线程请求量和所述服务队列集合中全部服务队列的处理请求需要的总线程请求量之间的关系,分别从线程池中分配相应数量的线程到与所述服务队列集合中服务队列对应的服务线程池中,包括:比较所述总线程请求量和所述线程池中全部线程的数量;如果所述线程池中全部线程的数量多于所述总线程需求数量,按照所述线程请求量从线程池中分配线程到与所述服务队列对应的服务线程池中;如果所述线程池中全部线程的数量少于所述总线程需求数量,按照所述线程请求量与所述总线程请求量的比值关系从线程池中分配线程到与所述服务队列对应的服务线程池中。5.根据权利要求4所述的方法,其特征在于,所述如果所述线程池中全部线程的数量少于所述总线程需求数量,按照所述线程请求量与所述总线程请求量的比值关系从线程池中分配线程到与所述服务队列对应的服务线程池中,包括:所述服务队列依据所述处理请求到达的时间顺序向与所述服务队列对应的服务线程池请求线程;当所述处理请求结束后,将处理所述处理请求的线程返回线程池。6.根据权利要求4所述的方法,其特征在于,所述如果所述线程池中全部线程的数量少于所述总线程需求数量,按照所述线程请求量从线程池中分配线程到与所述服务队列对应的服务线程池中,包括:将所述线程请求量和预设的服务线程池阈值比较;如果所述线程请求量大...

【专利技术属性】
技术研发人员:胡峰
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1