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.根据权利要求1所述的方法,其特征在于,所述线程池中包括至少两个服务线程池,所述线程池中不同服务线程池之间的线程相互隔离。3.根据权利要求1所述的方法,其特征在于,所述服务队列集合中服务队列的数量与所述线程池中服务线程池的数量相同,其中,每个服务队列中的处理请求具有相同处理任务。4.根据权利要求1所述的方法,其特征在于,所述根据每个服务队列的处理请求需要的线程请求量和所述服务队列集合中全部服务队列的处理请求需要的总线程请求量之间的关系,分别从线程池中分配相应数量的线程到与所述服务队列集合中服务队列对应的服务线程池中,包括:比较所述总线程请求量和所述线程池中全部线程的数量;如果所述线程池中全部线程的数量多于所述总线程需求数量,按照所述线程请求量从线程池中分配线程到与所述服务队列对应的服务线程池中;如果所述线程池中全部线程的数量少于所述总线程需求数量,按照所述线程请求量与所述总线程请求量的比值关系从线程池中分配线程到与所述服务队列对应的服务线程池中。5.根据权利要求4所述的方法,其特征在于,所述如果所述线程池中全部线程的数量少于所述总线程需求数量,按照所述线程请求量与所述总线程请求量的比值关系从线程池中分配线程到与所述服务队列对应的服务线程池中,包括:所述服务队列依据所述处理请求到达的时间顺序向与所述服务队列对应的服务线程池请求线程;当所述处理请求结束后,将处理所述处理请求的线程返回线程池。6.根据权利要求4所述的方法,其特征在于,所述如果所述线程池中全部线程的数量少于所述总线程需求数量,按照所述线程请求量从线程池中分配线程到与所述服务队列对应的服务线程池中,包括:将所述线程请求量和预设的服务线程池阈值比较;如果所述线程请求量大...
【专利技术属性】
技术研发人员:胡峰,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。