CN117472568A - 一种多线程任务处理方法及终端 - Google Patents
一种多线程任务处理方法及终端 Download PDFInfo
- Publication number
- CN117472568A CN117472568A CN202311387092.9A CN202311387092A CN117472568A CN 117472568 A CN117472568 A CN 117472568A CN 202311387092 A CN202311387092 A CN 202311387092A CN 117472568 A CN117472568 A CN 117472568A
- Authority
- CN
- China
- Prior art keywords
- thread
- data source
- threads
- cache
- task request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 7
- 238000004088 simulation Methods 0.000 claims description 32
- 238000000034 method Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 8
- 239000002699 waste material Substances 0.000 abstract description 10
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 238000009530 blood pressure measurement Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供的一种多线程任务处理方法及终端,包括创建缓存,所述缓存用于记录所述线程池中每一个线程对应的数据源;接收任务请求,所述任务请求包括待操作的目标数据源;根据所述缓存获取所述目标数据源当前并发执行的实时线程数量;判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量;若否,则将所述任务请求存放至所述线程池对应的线程队列中等待处理。通过创建缓存,记录每一个数据源并发执行的实时线程数量,基于实时线程数量控制该数据源的并发线程数量,避免该数据源的实时线程数量超过最佳线程数量而造成线程资源占用的问题,以此提高线程资源的利用率,减少线程资源浪费,从而提高系统的任务处理效率。
Description
技术领域
本发明涉及任务处理技术领域,尤其涉及一种多线程任务处理方法及终端。
背景技术
目前,互联网系统中存在很多的数据存储和文件存储的功能,其中,可能存在直接向数据库或者向云存储系统中写入数据的功能。通常为了满足大数据量的数据写入,都会采用线程池或者多线程的方式来进行数据的写入。可是实际场景中,由于磁盘的写入速率比较慢,通常都会有一个专门的程序用来稳定磁盘的写入数据,即不会让磁盘因为外部请求数据增多而急速地写入数据,其会保持一个恒定的最大写入速率来写入数据。当外部使用多线程或者线程池技术并发写入数据时,因为存储系统的这种写入原理,实际的数据处理过程也会保持一个恒定的速率。所以,在实际场景中,假设使用多个线程并发写入数据,因存储系统的写入有最大速率的限制,其中一半线程所携带的写入数据量就已经达到了存储系统的上限,则在执行数据写入操作时,另一半线程会被阻塞,即多个线程针对同一数据源进行并发写入的过程中,并不是所有线程都在工作,可能有些线程是在忙等,即线程什么事情都不做,就在那边占用线程资源并等待,造成系统资源的浪费,影响系统任务处理效率。
发明内容
本发明所要解决的技术问题是:提供一种多线程任务处理方法及终端,合理利用线程资源,避免系统资源浪费,从而提高系统的任务处理效率。
为了解决上述技术问题,本发明采用的技术方案为:
一种多线程任务处理方法,用于线程池,包括步骤:
创建缓存,所述缓存用于记录所述线程池中每一个线程对应的数据源;
接收任务请求,所述任务请求包括待操作的目标数据源;
根据所述缓存获取所述目标数据源当前并发执行的实时线程数量;
判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量;
若否,则将所述任务请求存放至所述线程池对应的线程队列中等待处理。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种多线程任务处理终端,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,用于线程池,所述处理器执行所述计算机程序时实现以下步骤:
创建缓存,所述缓存用于记录所述线程池中每一个线程对应的数据源;
接收任务请求,所述任务请求包括待操作的目标数据源;
根据所述缓存获取所述目标数据源当前并发执行的实时线程数量;
判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量;
若否,则将所述任务请求存放至所述线程池对应的线程队列中等待处理。
本发明的有益效果在于:在线程池中创建缓存,在线程池获取任务请求后,先访问缓存以获取任务请求对应的目标数据源并发执行的实时线程数量;当目标数据源并发执行的实时线程数量不小于最佳线程数量时,不把任务请求转发至线程池中的线程进行处理,而是将其存在至线程池对应的线程队列中等待处理。因为此时数据源并发执行的线程数量已经达到最佳线程数量,即使将任务请求转发至线程池中的线程进行处理也无法再次写入数据,反而造成该线程占用资源却不执行写入操作,即线程处于忙等状态。对此,本发明通过创建缓存,记录每一个数据源并发执行的实时线程数量,基于实时线程数量控制该数据源的并发线程数量,避免该数据源的实时线程数量超过最佳线程数量而造成线程资源占用的问题,以此提高线程资源的利用率,减少线程资源浪费,从而提高系统的任务处理效率。
附图说明
图1为本发明实施例提供的一种多线程任务处理方法的步骤流程图;
图2为本发明实施例提供的一种多线程任务处理终端的结构示意图;
标号说明:
200、一种多线程任务处理终端;201、存储器;202、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种多线程任务处理方法,用于线程池,包括步骤:
创建缓存,所述缓存用于记录所述线程池中每一个线程对应的数据源;
接收任务请求,所述任务请求包括待操作的目标数据源;
根据所述缓存获取所述目标数据源当前并发执行的实时线程数量;
判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量;
若否,则将所述任务请求存放至所述线程池对应的线程队列中等待处理。
从上述描述可知,本发明的有益效果在于:在线程池中创建缓存,在线程池获取任务请求后,先访问缓存以获取任务请求对应的目标数据源并发执行的实时线程数量;当目标数据源并发执行的实时线程数量不小于最佳线程数量时,不把任务请求转发至线程池中的线程进行处理,而是将其存在至线程池对应的线程队列中等待处理。因为此时数据源并发执行的线程数量已经达到最佳线程数量,即使将任务请求转发至线程池中的线程进行处理也无法再次写入数据,反而造成该线程占用资源却不执行写入操作,即线程处于忙等状态。对此,本发明通过创建缓存,记录每一个数据源并发执行的实时线程数量,基于实时线程数量控制该数据源的并发线程数量,避免该数据源的实时线程数量超过最佳线程数量而造成线程资源占用的问题,以此提高线程资源的利用率,减少线程资源浪费,从而提高系统的任务处理效率。
进一步的,还包括:
若是,则转发所述任务请求至所述线程池中的空余线程进行处理,并更新所述缓存中所述空余线程对应的数据源。
由上述描述可知,当目标数据源并发执行的实时线程数量小于最佳线程数量时,表示数据源并发线程仍未饱和,此时每一个线程均处于正常写入状态,因此,可以直接将任务请求转发至线程池中的线程进行处理,并以此更新缓存中的线程记录,以便于下一个任务请求的查询与处理,以此来避免数据源并发执行的线程数量超过最佳数量却仍在新增“无用线程”占用资源的问题。
进一步的,所述将所述任务请求存放至所述线程池对应的线程队列中等待处理包括:
从所述线程队列中获取所述任务请求,并返回执行所述根据所述缓存获取所述目标数据源当前并发执行的实时线程数量的步骤。
由上述描述可知,当线程池从队列中获取任务请求时,也需要通过缓存获取当前目标数据源的实时线程数量,若实时线程数量依然超过最佳线程数量,则将任务请求再次存放至线程队列中等待下一次的轮询。以此方式保证数据源并发执行的线程数量维持在最佳线程数量,避免线程资源的浪费。
进一步的,所述判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量包括:
若是,则判断所述线程池中是否存在空余线程;
若存在,则转发所述任务请求至所述空余线程进行处理,并更新所述缓存中所述空余线程对应的数据源;
若不存在,则在所述线程池中新建目标线程,并转发所述任务请求至所述目标线程进行处理,并记录所述目标线程对应的数据源至所述缓存。
由上述描述可知,当线程池接收到任务请求或从队列中获取任务请求时,若实时线程数量小于最佳线程数量,则将任务请求转发至线程池中的空余线程进行处理。由于旧有线程池中存在两种获取任务请求的途径,以此方式,无论是直接接收任务请求还是从队列中获取任务请求的情况下都能够保证数据源并发执行的线程数量不超过最佳线程数量,实现最大程度上地合理利用线程资源。
进一步的,所述创建缓存之前,还包括:
获取待操作的数据源;
通过压测工具模拟逐一增加所述数据源并发执行的模拟线程数量,并监测所述数据源的数据吞吐量;
判断所述数据吞吐量的变化量与所述模拟线程数量的增加量是否为线性关系;
若是,则返回执行所述通过压测工具模拟逐一增加所述数据源并发执行的模拟线程数量的步骤;
否则,获取所述数据吞吐量的变化量与所述模拟线程数量的增加量为线性关系的最大模拟线程数量作为所述数据源的最佳线程数量。
由上述描述可知,当数据吞吐量的变化量并不会随着模拟线程数量的增加而线性增加时,则表示此时增加的线程可能并未执行写入操作,只是处于忙等状态,因此在此之后增加的线程属于“无用线程”。以此方式,得到每个数据源对应的最佳并发线程数量,从而保证后续任务处理过程中线程资源的合理利用,提高系统处理效率。
请参照图2,本发明另一实施例提供了一种多线程任务处理终端,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,用于线程池,所述处理器执行所述计算机程序时实现以下步骤:
创建缓存,所述缓存用于记录所述线程池中每一个线程对应的数据源;
接收任务请求,所述任务请求包括待操作的目标数据源;
根据所述缓存获取所述目标数据源当前并发执行的实时线程数量;
判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量;
若否,则将所述任务请求存放至所述线程池对应的线程队列中等待处理。
从上述描述可知,本发明的有益效果在于:在线程池中创建缓存,在线程池获取任务请求后,先访问缓存以获取任务请求对应的目标数据源并发执行的实时线程数量;当目标数据源并发执行的实时线程数量不小于最佳线程数量时,不把任务请求转发至线程池中的线程进行处理,而是将其存在至线程池对应的线程队列中等待处理。因为此时数据源并发执行的线程数量已经达到最佳线程数量,即使将任务请求转发至线程池中的线程进行处理也无法再次写入数据,反而造成该线程占用资源却不执行写入操作,即线程处于忙等状态。对此,本发明通过创建缓存,记录每一个数据源并发执行的实时线程数量,基于实时线程数量控制该数据源的并发线程数量,避免该数据源的实时线程数量超过最佳线程数量而造成线程资源占用的问题,以此提高线程资源的利用率,减少线程资源浪费,从而提高系统的任务处理效率。
进一步的,还包括:
若是,则转发所述任务请求至所述线程池中的空余线程进行处理,并更新所述缓存中所述空余线程对应的数据源。
由上述描述可知,当目标数据源并发执行的实时线程数量小于最佳线程数量时,表示数据源并发线程仍未饱和,此时每一个线程均处于正常写入状态,因此,可以直接将任务请求转发至线程池中的线程进行处理,并以此更新缓存中的线程记录,以便于下一个任务请求的查询与处理,以此来避免数据源并发执行的线程数量超过最佳数量却仍在新增“无用线程”占用资源的问题。
进一步的,所述将所述任务请求存放至所述线程池对应的线程队列中等待处理包括:
从所述线程队列中获取所述任务请求,并返回执行所述根据所述缓存获取所述目标数据源当前并发执行的实时线程数量的步骤。
由上述描述可知,当线程池从队列中获取任务请求时,也需要通过缓存获取当前目标数据源的实时线程数量,若实时线程数量依然超过最佳线程数量,则将任务请求再次存放至线程队列中等待下一次的轮询。以此方式保证数据源并发执行的线程数量维持在最佳线程数量,避免线程资源的浪费。
进一步的,所述判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量包括:
若是,则判断所述线程池中是否存在空余线程;
若存在,则转发所述任务请求至所述空余线程进行处理,并更新所述缓存中所述空余线程对应的数据源;
若不存在,则在所述线程池中新建目标线程,并转发所述任务请求至所述目标线程进行处理,并记录所述目标线程对应的数据源至所述缓存。
由上述描述可知,当线程池从队列中获取任务请求时,若实时线程数量小于最佳线程数量,则将任务请求转发至线程池中的空余线程进行处理。由于旧有线程池中存在两种获取任务请求的途径,以此方式,无论是直接接收任务请求还是从队列中获取任务请求的情况下都能够保证数据源并发执行的线程数量不超过最佳线程数量,实现最大程度上地合理利用线程资源。
进一步的,所述创建缓存之前,还包括:
获取待操作的数据源;
通过压测工具模拟逐一增加所述数据源并发执行的模拟线程数量,并监测所述数据源的数据吞吐量;
判断所述数据吞吐量的变化量与所述模拟线程数量的增加量是否为线性关系;
若是,则返回执行所述通过压测工具模拟逐一增加所述数据源并发执行的模拟线程数量的步骤;
否则,获取所述数据吞吐量的变化量与所述模拟线程数量的增加量为线性关系的最大模拟线程数量作为所述数据源的最佳线程数量。
由上述描述可知,当数据吞吐量的变化量并不会随着模拟线程数量的增加而线性增加时,则表示此时增加的线程可能并未执行写入操作,只是处于忙等状态,因此在此之后增加的线程属于“无用线程”。以此方式,得到每个数据源对应的最佳并发线程数量,从而保证后续任务处理过程中线程资源的合理利用,提高系统处理效率。
本发明提供的一种多线程任务处理方法及终端,可应用于多线程的数据写入场景,通过合理利用线程资源,避免系统资源浪费,从而提高系统的任务处理效率,以下通过具体实施例来说明:
请参照图1,本发明的实施例一为:
一种多线程任务处理方法,用于线程池,包括步骤:
S101、获取待操作的数据源。
S102、通过压测工具模拟逐一增加所述数据源并发执行的模拟线程数量,并监测所述数据源的数据吞吐量。
S103、判断所述数据吞吐量的变化量与所述模拟线程数量的增加量是否为线性关系。
在一些实施例中,当模拟线程数量的增加量对数据吞吐量的变化量影响很小时,例如模拟线程数量每增加1,吞吐量变化小于阈值,则判断为影响很小;此时也执行步骤S1032。
S1031、若是,则返回执行所述通过压测工具模拟逐一增加所述数据源并发执行的模拟线程数量的步骤。
S1032、否则,获取所述数据吞吐量的变化量与所述模拟线程数量的增加量为线性关系的最大模拟线程数量作为所述数据源的最佳线程数量。
在一些实施例中,若存在一个待操作的数据源,该数据源对外提供数据写入功能,其并发执行的最佳线程数量为5个。通过压测工具模拟该数据源并发执行的模拟线程数量从1个逐一增加至5个的过程中,数据吞吐量的变化量与模拟线程数量的增加量均呈线性关系。而压测工具模拟该数据源并发执行的模拟线程数量大于5个时,数据吞吐量的变化量与模拟线程数量的增加量呈非线性关系,此时线性关系中的最大模拟线程数量为5。由此可以确定5个线程数量作为数据源的最佳线程数量。需要说明的是,当数据吞吐量的变化量与模拟线程数量的增加量为非线性关系,则表示当前数据源的写入速率已经达到了恒定的最大写入速率,若此时继续增加线程数量至6个,也还是只有5个在正常并发执行,剩余1个线程则是占用线程资源在等待执行。
S1、创建缓存,所述缓存用于记录所述线程池中每一个线程对应的数据源。
需要说明的是,此处的数据源指代用于存储数据的系统,包括数据库、云存储空间和其他第三方存储系统。
S2、接收任务请求,所述任务请求包括待操作的目标数据源。
S3、根据所述缓存获取所述目标数据源当前并发执行的实时线程数量。
在一些实施例中,由于缓存中记录有线程池中每一个线程对应的数据源,因此在缓存中通过目标数据源的相关标识信息能够反向查询当前线程池中共有哪些线程在对目标数据源进行数据操作,最后通过统计缓存中目标数据源对应的所有线程即可得到目标数据源当前并发执行的实时线程数量。
S4、判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量。
具体的,所述S4包括:
S41、若是,则判断所述线程池中是否存在空余线程。
其中,所述步骤S41中:判断所述线程池中是否存在空余线程包括:
S411、若存在,则转发所述任务请求至所述线程池中的空余线程进行处理,并更新所述缓存中所述空余线程对应的数据源。
S412、若不存在,则在所述线程池中新建目标线程,并转发所述任务请求至所述目标线程进行处理,并记录所述目标线程对应的数据源至所述缓存。
需要说明的是,每次转发任务请求至线程后,都需要更新缓存中该线程对应的数据源,即该数据源对应的线程数量加一。
在一些实施例中,在所述线程池中新建目标线程之前,还包括:获取所述线程池的线程总数;判断所述线程总数是否小于所述线程池预设的最大线程数量;若是,则执行所述在所述线程池中新建目标线程的步骤;否则,禁止获取任务请求。当线程总数达到线程池预设的最大线程数量,则表示当前线程资源已全部被占用,即使数据源当前的线程数量未达到最佳线程数量,也无法获取到对应的线程资源,因此禁止获取任务请求,使得任务请求在线程队列中继续等待处理。以此保证线程资源的合理使用和线程并发的正常执行。
S42、若否,则将所述任务请求存放至所述线程池对应的线程队列中等待处理。
其中,所述步骤S42中:将所述任务请求存放至所述线程池对应的线程队列中等待处理包括:
S421、从所述线程队列中获取所述任务请求,并返回执行所述步骤S3至步骤S4。
需要说明的是,当线程池中线程对应的任务请求执行完毕后,需要删除缓存中该线程所对应的数据源记录,即该数据源对应的线程数量减一。
在一些实施例中,若目标数据源即为上述最佳线程数量为5个的数据源,则当缓存中该数据源当前并发执行的实时线程数量小于5个,则执行步骤S41,否则执行步骤S42。
请参照图2,本发明的实施例二为:
一种多线程任务处理终端200,包括存储器201、处理器202及存储在所述存储器201上并在所述处理器202上运行的计算机程序,用于线程池,所述处理器202执行所述计算机程序时实现实施例一中所述一种多线程任务处理方法中的各个步骤。
综上所述,本发明提供的一种多线程任务处理方法及终端,在线程池中创建缓存,无论是线程池直接接收到任务请求还是从队列中获取任务请求,都需要先访问缓存,从而获取任务请求对应的目标数据源并发执行的实时线程数量;即得到目标数据源正常执行的线程数量。当目标数据源并发执行的实时线程数量达到最佳线程数量,则不把任务请求转发至线程池中的线程进行处理,而是将其存放在线程池对应的线程队列中等待处理。因为此时即使将任务请求转发至线程池中的线程进行处理,该线程也无法写入数据,反而造成该线程占用资源却不执行写入操作,使得线程处于忙等状态。对此,本发明通过创建缓存,记录线程对应的数据源从而计算每一个数据源并发执行的实时线程数量,将数据源的实时线程数量始终维持在合理的线程数量内,使得数据源保持最大写入速率,避免线程资源占用的问题,以此提高线程资源的利用率,减少线程资源浪费,从而提高系统的任务处理效率。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种多线程任务处理方法,用于线程池,其特征在于,包括步骤:
创建缓存,所述缓存用于记录所述线程池中每一个线程对应的数据源;
接收任务请求,所述任务请求包括待操作的目标数据源;
根据所述缓存获取所述目标数据源当前并发执行的实时线程数量;
判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量;
若否,则将所述任务请求存放至所述线程池对应的线程队列中等待处理。
2.根据权利要求1所述的一种多线程任务处理方法,其特征在于,还包括:
若是,则转发所述任务请求至所述线程池中的空余线程进行处理,并更新所述缓存中所述空余线程对应的数据源。
3.根据权利要求1所述的一种多线程任务处理方法,其特征在于,所述将所述任务请求存放至所述线程池对应的线程队列中等待处理包括:
从所述线程队列中获取所述任务请求,并返回执行所述根据所述缓存获取所述目标数据源当前并发执行的实时线程数量的步骤。
4.根据权利要求1所述的一种多线程任务处理方法,其特征在于,所述判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量包括:
若是,则判断所述线程池中是否存在空余线程;
若存在,则转发所述任务请求至所述空余线程进行处理,并更新所述缓存中所述空余线程对应的数据源;
若不存在,则在所述线程池中新建目标线程,并转发所述任务请求至所述目标线程进行处理,并记录所述目标线程对应的数据源至所述缓存。
5.根据权利要求1所述的一种多线程任务处理方法,其特征在于,所述创建缓存之前,还包括:
获取待操作的数据源;
通过压测工具模拟逐一增加所述数据源并发执行的模拟线程数量,并监测所述数据源的数据吞吐量;
判断所述数据吞吐量的变化量与所述模拟线程数量的增加量是否为线性关系;
若是,则返回执行所述通过压测工具模拟逐一增加所述数据源并发执行的模拟线程数量的步骤;
否则,获取所述数据吞吐量的变化量与所述模拟线程数量的增加量为线性关系的最大模拟线程数量作为所述数据源的最佳线程数量。
6.一种多线程任务处理终端,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,用于线程池,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
创建缓存,所述缓存用于记录所述线程池中每一个线程对应的数据源;
接收任务请求,所述任务请求包括待操作的目标数据源;
根据所述缓存获取所述目标数据源当前并发执行的实时线程数量;
判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量;
若否,则将所述任务请求存放至所述线程池对应的线程队列中等待处理。
7.根据权利要求6所述的一种多线程任务处理终端,其特征在于,还包括:
若是,则转发所述任务请求至所述线程池中的空余线程进行处理,并更新所述缓存中所述空余线程对应的数据源。
8.根据权利要求6所述的一种多线程任务处理终端,其特征在于,所述将所述任务请求存放至所述线程池对应的线程队列中等待处理包括:
从所述线程队列中获取所述任务请求,并返回执行所述根据所述缓存获取所述目标数据源当前并发执行的实时线程数量的步骤。
9.根据权利要求6所述的一种多线程任务处理终端,其特征在于,所述判断所述实时线程数量是否小于所述目标数据源预设的最佳线程数量包括:
若是,则判断所述线程池中是否存在空余线程;
若存在,则转发所述任务请求至所述空余线程进行处理,并更新所述缓存中所述空余线程对应的数据源;
若不存在,则在所述线程池中新建目标线程,并转发所述任务请求至所述目标线程进行处理,并记录所述目标线程对应的数据源至所述缓存。
10.根据权利要求6所述的一种多线程任务处理终端,其特征在于,所述创建缓存之前,还包括:
获取待操作的数据源;
通过压测工具模拟逐一增加所述数据源并发执行的模拟线程数量,并监测所述数据源的数据吞吐量;
判断所述数据吞吐量的变化量与所述模拟线程数量的增加量是否为线性关系;
若是,则返回执行所述通过压测工具模拟逐一增加所述数据源并发执行的模拟线程数量的步骤;
否则,获取所述数据吞吐量的变化量与所述模拟线程数量的增加量为线性关系的最大模拟线程数量作为所述数据源的最佳线程数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311387092.9A CN117472568A (zh) | 2023-10-24 | 2023-10-24 | 一种多线程任务处理方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311387092.9A CN117472568A (zh) | 2023-10-24 | 2023-10-24 | 一种多线程任务处理方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117472568A true CN117472568A (zh) | 2024-01-30 |
Family
ID=89626706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311387092.9A Pending CN117472568A (zh) | 2023-10-24 | 2023-10-24 | 一种多线程任务处理方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472568A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118014732A (zh) * | 2024-04-10 | 2024-05-10 | 深圳华锐分布式技术股份有限公司 | 数据回传方法、装置、设备及介质 |
-
2023
- 2023-10-24 CN CN202311387092.9A patent/CN117472568A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118014732A (zh) * | 2024-04-10 | 2024-05-10 | 深圳华锐分布式技术股份有限公司 | 数据回传方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210349665A1 (en) | Latency-based Scheduling of Command Processing in Data Storage Devices | |
US10565104B2 (en) | System and method to manage and share managed runtime memory for JAVA virtual machine | |
US7069396B2 (en) | Deferred memory allocation for application threads | |
US20130091331A1 (en) | Methods, apparatus, and articles of manufacture to manage memory | |
JP2014504768A (ja) | 領域に基づくガベージ・コレクタを用いてクラスを漸進的にアンロードするための方法、コンピュータ・プログラム製品、および装置 | |
US11474712B2 (en) | Method, apparatus, device and storage medium for managing access request | |
US8677360B2 (en) | Thread-related actions based on historical thread behaviors | |
CN117472568A (zh) | 一种多线程任务处理方法及终端 | |
US20140115291A1 (en) | Numa optimization for garbage collection of multi-threaded applications | |
WO2021093365A1 (zh) | 一种gpu显存管理控制方法及相关装置 | |
CN109582649B (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
US9904470B2 (en) | Tracking ownership of memory in a data processing system through use of a memory monitor | |
CN115237599B (zh) | 一种渲染任务处理方法和装置 | |
CN113010289A (zh) | 一种任务调度方法、装置和系统 | |
US20120331235A1 (en) | Memory management apparatus, memory management method, control program, and recording medium | |
US8782306B2 (en) | Low-contention update buffer queuing for large systems | |
US20050066305A1 (en) | Method and machine for efficient simulation of digital hardware within a software development environment | |
CN107220069B (zh) | 一种针对非易失性内存的Shuffle方法 | |
CN112000703B (zh) | 数据入库处理方法、装置、计算机设备和存储介质 | |
US10417121B1 (en) | Monitoring memory usage in computing devices | |
CN106227739B (zh) | 一种实现基于多任务的数据请求方法 | |
US20230393782A1 (en) | Io request pipeline processing device, method and system, and storage medium | |
CN1851651A (zh) | 嵌入式sram操作系统进程优先权调度的实现方法 | |
CN115878910A (zh) | 线路查询方法、装置和存储介质 | |
CN111143418B (zh) | 一种数据库读取数据方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |