CN112445614B - 一种线程数据的存储管理方法、计算机设备及存储介质 - Google Patents
一种线程数据的存储管理方法、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112445614B CN112445614B CN202011209539.XA CN202011209539A CN112445614B CN 112445614 B CN112445614 B CN 112445614B CN 202011209539 A CN202011209539 A CN 202011209539A CN 112445614 B CN112445614 B CN 112445614B
- Authority
- CN
- China
- Prior art keywords
- distributed
- priority
- thread
- task
- substructure
- 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.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 12
- 238000013500 data storage Methods 0.000 title description 2
- 238000000034 method Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004913 activation Effects 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种线程数据的存储管理方法、计算机设备及存储介质,包括:获取分发请求;根据所述分发请求获取待分发对象,所述待分发对象携带有对象信息;根据所述对象信息调用线程结构,定义所述线程结构的子结构的优先级;根据所述分发请求定义所述待分发对象的优先级;将所述待分发请求根据优先级与所述子结构进行匹配,将所述待分发对象分发至匹配后的所述子结构中进行存储。本发明通过创建具有优先级设定的线程结构,并且每个定义有优先级的子结构可根据优先级对待分发对象进行存储,即是将可能会堵塞线程的任务作为待分发对象分发至子结构中进行存储管理,需执行时依照优先级进行派发。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种线程数据的存储管理方法、计算机设备及存储介质。
背景技术
现如今,iOS应用软件的开发者多数是直接用GCD(Grand Central Dispatch,是Apple开发的一个多核编程的较新的解决方法,它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统,是一个在线程池模式的基础上执行的并行任务)这个官方框架来直接做异步的线程操作,实现多线程的并行处理任务数据,而在并发处理的过程中,因为待处理的任务数据的派发速度大于应用的CPU的运行速度,故为了防止堵塞,派发出的任务数据需要等待被执行,即会形成大量的队列,从而产生数量庞大的线程,队列的形成过程会消耗CPU的性能,产生的大量的线程会占用CPU的内存,故在GCD的使用过程中会导致线程数量不受控制,浪费CPU的性能以及运行资源。
发明内容
本发明的目的是提供一种线程数据的存储管理方法、计算机设备及存储介质,能够解决并行处理派发的任务时的线程过多而浪费CPU的性能以及运行资源的问题。
为了实现上述目的,本发明采用如下技术方案:
一种线程数据的存储管理方法,包括:
获取分发请求;
根据所述分发请求获取待分发对象,所述待分发对象携带有对象信息;
根据所述对象信息调用线程结构,定义所述线程结构的子结构的优先级;
根据所述分发请求定义所述待分发对象的优先级;
将所述待分发请求根据优先级与所述子结构进行匹配,将所述待分发对象分发至匹配后的所述子结构中进行存储。
进一步地,定义所述线程结构的子结构的优先级,包括:
所述线程结构至少包括两个子结构,分别定义所述子结构的优先级;
根据CPU激活核心数确定所述子结构中串行队列的数量。
进一步地,根据所述对象信息调用线程结构,包括:
所述待分发对象至少存储有一个待分发任务;
所述对象信息包括所述待分发任务的任务种类,根据所述任务种类调用对应的线程结构。
进一步地,根据所述分发请求定义所述待分发对象的优先级,包括:
所述分发请求携带有请求信息,根据所述请求信息定义所述待分发对象的优先级。
进一步地,将所述待分发请求根据优先级与所述子结构进行匹配,将所述待分发对象分发至匹配后的所述队列池中进行存储,包括:
匹配优先级相同的所述待分发对象和所述子结构;
轮询所述子结构中串行队列的空闲状态,根据串行队列的空闲状态选定队列,将所述待分发对象分发至选定后的串行队列中进行存储。
进一步地,轮询所述子结构中串行队列的空闲状态,根据串行队列的空闲状态选定队列,将所述待分发对象分发至选定后的串行队列中进行存储,包括:
轮询所述子结构的串行队列中已存储的任务数量,将串行队列根据任务数量递增的方式进行排序;
将所述待分发对象轮询分发至排序后的串行队列中进行存储。
一种计算机设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述的线程数据的存储管理方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的线程数据的存储管理方法。
由以上本申请实施方式提供的技术方案可见,本发明根据分发请求获取可能堵塞主线程运行的待分发对象,通过调用相匹配的设定有优先级别的线程结构的子结构,将对应优先级的待分发对象进行存储,供需执行时依照优先级对其进行有序派发执行,存储位空闲后能够对线程结构进行复用,以此控制了线程的数量,避免了CPU的性能以及运行资源的浪费。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一实施例提供的一种线程数据的存储管理方法的流程示意图;
图2为本发明一实施例提供的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请一实施例提供了一种线程数据的存储管理方法,在运行本申请的存储管理方法之前需要创建所应用的线程结构,所述线程结构可存储有用于匹配待分发对象的标识性信息,还包括标识可存放队列池的子结构,以及派发任务对象时应用的偏移值,偏移值设于每个子结构上,在派发任务时根据每个子结构的偏移值依次派发对应子结构下存储的待分发对象,创建后的线程结构应用所述存储管理方法对线程数据即待分发对象进行存储,本申请该实施例中的存储管理方法,如图1所示,其包括如下其方法步骤:
S1,获取分发请求。
本实施例中,在系统派发并发任务数据后,数据交互接口未能接收到反馈信号,基于未接收到反馈信号的任务数据会产生分发请求,防止开启大量的存放有任务数据的并行队列,降低系统对并行队列顺序和数量的控制力。
S2,根据所述分发请求获取待分发对象,所述待分发对象携带有对象信息。
由于分发请求是基于未接收到反馈信号的任务数据而产生,故能够根据分发请求获取存放上述任务数据的待分发对象,并且所述待分发对象携带有对象信息。
S3,根据所述对象信息调用线程结构,定义所述线程结构的子结构的优先级。
本实施例中,由于待分发对象至少存放有一个待分发任务,故本实施例中将所述待分发任务的任务种类作为对象信息,例如下载任务、渲染任务或图片处理任务等。
另外,因为线程结构包括能够存储用于匹配待分发对象的标识性信息,标识性信息与待分发对象的对象信息相对应,即不同的线程结构都对应不同的任务种类,故能够通过待分发对象中存放的任务的种类,调用相匹配的线程结构。
所调用的所述线程结构至少包括两个子结构,本实施例中的线程结构包括有四个子结构,分别定义所述子结构派发任务的优先级,可以包括高优先级、默认优先级、低优先级和后台优先级,即每个优先级都对应一个子结构,且子结构为队列池,队列池中的队列通过for循环生成串行队列,根据CPU激活核心数确定队列数量,例如应用双核CPU时,队列池即子结构中串行队列的队列数量为两个,与核心数对应。
S4,根据所述分发请求定义所述待分发对象的优先级。
所述分发请求携带有请求信息,所述请求信息可以包括任务执行环境、环境下任务的种类以及业务需求,例如处于使用修图软件的环境下时任务有图片处理任务和下载任务,则图片处理任务的优先级高于下载任务,或者根据客户的业务需求定义指定的任务为高优先级的优先级,故在本实施例中体现为,能够根据上述的各项请求信息定义所述待分发对象的优先级,即待分发对象的任务的处理顺序。
S5,将所述待分发对象根据优先级与所述子结构进行匹配,将所述待分发对象分发至匹配后的所述子结构中进行存储。
完成待分发对象的优先级定义后,匹配优先级相同的所述待分发对象和所述子结构;之后轮询所述子结构中所有串行队列的空闲状态,根据串行队列的空闲状态选定队列,选出空闲状态即未存储有待分发对象的任务的串行队列,将所述待分发对象优先分发至选定后的该空闲串行队列中进行存储。
在本申请的另一实施例中,当匹配的优先级下的串行队列均未处于空闲状态,则在轮询所有的串行队列时,检测出每个串行队列中已经存储的任务数量,将同一优先级对应的串行队列根据任务数量递增的方式进行排序,将所述待分发对象轮询分发至排序后的串行队列中进行存储,优先将待分发任务存储至任务数量少的队列中。
本申请上述实施例提供的一种线程数据的存储管理方法,通过分发请求获取对应的待分发对象,之后根据待分发对象中的任务种类调用对应的线程结构,并根据分发请求定义待分发对象的优先级,以此匹配待分发对象和线程结构中的子结构,将待分发对象存储至子结构的数量等同于CPU核心数的串行队列中,然后在派发已经存储的任务的时候依据优先级轮询串行队列执行,控制了任务的执行迅速,尽量让CPU能得到充分的使用,并且线程结构的串行队列空闲后仍然可以缓存其他的待分发对象,以此达到线程结构的最大化复用,即控制了线程的总数量,减少了创建过多线程带来的内存消耗,避免了CPU的性能以及运行资源的浪费。
本发明公开的计算机设备的一个实施例的结构示意图如图2所示,其包括存储器101和处理器102。其中:存储器101可以是磁盘、闪存或其它任何非易失性存储介质。存储器102用于存储上述的页面中动画的生成方法的对应实施例中的指令。处理器102耦接至存储器101,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器102用于执行存储器101中存储的指令,能够降低动画显示对存储空间的占用,方便生成和显示动态内容的无规律移动的动画效果。
在另一实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现所述的页面中动画的生成方法的步骤。本领域内的技术人员应明白,本发明的实施例可提供为方法、设备、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种线程数据的存储管理方法,包括:
获取分发请求;
根据所述分发请求获取待分发对象,所述待分发对象携带有对象信息,所述对象信息为待分发任务的任务种类;
根据对象信息调用线程结构,定义所述线程结构的子结构的优先级;
根据所述分发请求定义所述待分发对象的优先级;匹配优先级相同的所述待分发对象和所述子结构;轮询所述子结构的串行队列中已存储的任务数量,将串行队列根据任务数量递增的方式进行排序;将所述待分发对象轮询分发至排序后的串行队列中进行存储。
2.根据权利要求1所述的一种线程数据的存储管理方法,其特征在于,定义所述线程结构的子结构的优先级,包括:
所述线程结构至少包括两个子结构,分别定义所述子结构的优先级;
根据CPU激活核心数确定所述子结构中串行队列的数量。
3.根据权利要求1或2所述的一种线程数据的存储管理方法,其特征在于,根据所述对象信息调用线程结构,包括:
所述待分发对象至少存储有一个待分发任务;
所述对象信息包括所述待分发任务的任务种类,根据所述任务种类调用对应的线程结构。
4.根据权利要求3所述的一种线程数据的存储管理方法,其特征在于,根据所述分发请求定义所述待分发对象的优先级,包括:
所述分发请求携带有请求信息,根据所述请求信息定义所述待分发对象的优先级。
5.一种计算机设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现权利要求1至4任一项所述的线程数据的存储管理方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述的线程数据的存储管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011209539.XA CN112445614B (zh) | 2020-11-03 | 2020-11-03 | 一种线程数据的存储管理方法、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011209539.XA CN112445614B (zh) | 2020-11-03 | 2020-11-03 | 一种线程数据的存储管理方法、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445614A CN112445614A (zh) | 2021-03-05 |
CN112445614B true CN112445614B (zh) | 2024-06-28 |
Family
ID=74736215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011209539.XA Active CN112445614B (zh) | 2020-11-03 | 2020-11-03 | 一种线程数据的存储管理方法、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112445614B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296960B (zh) * | 2021-06-29 | 2023-02-03 | 中国平安人寿保险股份有限公司 | 数据准实时分发方法、装置、设备及存储介质 |
CN114003175B (zh) * | 2021-11-02 | 2024-02-06 | 青岛海信日立空调系统有限公司 | 一种空调器及其控制系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391243A (zh) * | 2017-06-30 | 2017-11-24 | 广东神马搜索科技有限公司 | 线程任务处理设备、装置及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100153957A1 (en) * | 2008-12-16 | 2010-06-17 | Sensormatic Electronics Corporation | System and method for managing thread use in a thread pool |
US10740159B2 (en) * | 2018-07-24 | 2020-08-11 | EMC IP Holding Company LLC | Synchronization object prioritization systems and methods |
CN111813554A (zh) * | 2020-07-17 | 2020-10-23 | 济南浪潮数据技术有限公司 | 一种任务调度处理方法、装置及电子设备和存储介质 |
-
2020
- 2020-11-03 CN CN202011209539.XA patent/CN112445614B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391243A (zh) * | 2017-06-30 | 2017-11-24 | 广东神马搜索科技有限公司 | 线程任务处理设备、装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112445614A (zh) | 2021-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144710B (zh) | 资源调度方法、装置及计算机可读存储介质 | |
CN109582455B (zh) | 多线程任务处理方法、装置及存储介质 | |
US8713571B2 (en) | Asynchronous task execution | |
CN105579961B (zh) | 数据处理系统及操作方法、用于数据处理系统的硬件单元 | |
JP5367816B2 (ja) | オペレーションの保護モードスケジューリング | |
US8549524B2 (en) | Task scheduler for cooperative tasks and threads for multiprocessors and multicore systems | |
US9891949B2 (en) | System and method for runtime scheduling of GPU tasks | |
KR101626378B1 (ko) | 병렬도를 고려한 병렬 처리 장치 및 방법 | |
US9223627B2 (en) | Management of task allocation in a multi-core processing system | |
US10248456B2 (en) | Method and system for providing stack memory management in real-time operating systems | |
CN112445614B (zh) | 一种线程数据的存储管理方法、计算机设备及存储介质 | |
US20100083272A1 (en) | Managing pools of dynamic resources | |
KR20200014378A (ko) | 직무 관리 | |
CN111459622B (zh) | 调度虚拟cpu的方法、装置、计算机设备和存储介质 | |
CN114637536A (zh) | 任务处理方法、计算协处理器、芯片及计算机设备 | |
US20130125131A1 (en) | Multi-core processor system, thread control method, and computer product | |
CN116069500A (zh) | 一种模型训练任务处理方法、装置、电子设备及可读介质 | |
US10523746B2 (en) | Coexistence of a synchronous architecture and an asynchronous architecture in a server | |
CN114816709A (zh) | 任务调度方法、装置、服务器及可读存储介质 | |
WO2023044877A1 (zh) | 一种渲染任务处理方法、装置、电子设备及存储介质 | |
US20040039884A1 (en) | System and method for managing the memory in a computer system | |
CN117472568A (zh) | 一种多线程任务处理方法及终端 | |
Schmid et al. | Parallel programming in real-time systems | |
CN113806049A (zh) | 任务排队方法、装置、计算机设备和存储介质 | |
KR20120098051A (ko) | 멀티 버추얼 머신을 이용한 멀티 쓰레드 처리시스템 및 그 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |