CN112445614A - 一种线程数据的存储管理方法、计算机设备及存储介质 - Google Patents

一种线程数据的存储管理方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN112445614A
CN112445614A CN202011209539.XA CN202011209539A CN112445614A CN 112445614 A CN112445614 A CN 112445614A CN 202011209539 A CN202011209539 A CN 202011209539A CN 112445614 A CN112445614 A CN 112445614A
Authority
CN
China
Prior art keywords
distributed
priority
substructure
serial
queue
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
Application number
CN202011209539.XA
Other languages
English (en)
Inventor
冯炜坚
潘叶江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vatti Co Ltd
Original Assignee
Vatti Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vatti Co Ltd filed Critical Vatti Co Ltd
Priority to CN202011209539.XA priority Critical patent/CN112445614A/zh
Publication of CN112445614A publication Critical patent/CN112445614A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5044Allocation 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 (8)

1.一种线程数据的存储管理方法,包括:
获取分发请求;
根据所述分发请求获取待分发对象,所述待分发对象携带有对象信息;
根据所述对象信息调用线程结构,定义所述线程结构的子结构的优先级;
根据所述分发请求定义所述待分发对象的优先级;
将所述待分发对象根据优先级与所述子结构进行匹配,将所述待分发对象分发至匹配后的所述子结构中进行存储。
2.根据权利要求1所述的一种线程数据的存储管理方法,其特征在于,定义所述线程结构的子结构的优先级,包括:
所述线程结构至少包括两个子结构,分别定义所述子结构的优先级;
根据CPU激活核心数确定所述子结构中串行队列的数量。
3.根据权利要求1或2所述的一种线程数据的存储管理方法,其特征在于,根据所述对象信息调用线程结构,包括:
所述待分发对象至少存储有一个待分发任务;
所述对象信息包括所述待分发任务的任务种类,根据所述任务种类调用对应的线程结构。
4.根据权利要求3所述的一种线程数据的存储管理方法,其特征在于,根据所述分发请求定义所述待分发对象的优先级,包括:
所述分发请求携带有请求信息,根据所述请求信息定义所述待分发对象的优先级。
5.根据权利要求4所述的一种线程数据的存储管理方法,其特征在于,将所述待分发对象根据优先级与所述子结构进行匹配,将所述待分发对象分发至匹配后的所述队列池中进行存储,包括:
匹配优先级相同的所述待分发对象和所述子结构;
轮询所述子结构中串行队列的空闲状态,根据串行队列的空闲状态选定队列,将所述待分发对象分发至选定后的串行队列中进行存储。
6.根据权利要求5所述的一种线程数据的存储管理方法,其特征在于,轮询所述子结构中串行队列的空闲状态,根据串行队列的空闲状态选定队列,将所述待分发对象分发至选定后的串行队列中进行存储,包括:
轮询所述子结构的串行队列中已存储的任务数量,将串行队列根据任务数量递增的方式进行排序;
将所述待分发对象轮询分发至排序后的串行队列中进行存储。
7.一种计算机设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现权利要求1至6任一项所述的线程数据的存储管理方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的线程数据的存储管理方法。
CN202011209539.XA 2020-11-03 2020-11-03 一种线程数据的存储管理方法、计算机设备及存储介质 Pending CN112445614A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011209539.XA CN112445614A (zh) 2020-11-03 2020-11-03 一种线程数据的存储管理方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011209539.XA CN112445614A (zh) 2020-11-03 2020-11-03 一种线程数据的存储管理方法、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN112445614A true CN112445614A (zh) 2021-03-05

Family

ID=74736215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011209539.XA Pending CN112445614A (zh) 2020-11-03 2020-11-03 一种线程数据的存储管理方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112445614A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113296960A (zh) * 2021-06-29 2021-08-24 中国平安人寿保险股份有限公司 数据准实时分发方法、装置、设备及存储介质
CN114003175A (zh) * 2021-11-02 2022-02-01 青岛海信日立空调系统有限公司 一种空调器及其控制系统

Citations (4)

* Cited by examiner, † Cited by third party
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
CN107391243A (zh) * 2017-06-30 2017-11-24 广东神马搜索科技有限公司 线程任务处理设备、装置及方法
US20200034212A1 (en) * 2018-07-24 2020-01-30 EMC IP Holding Company LLC Synchronization object prioritization systems and methods
CN111813554A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种任务调度处理方法、装置及电子设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
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
CN107391243A (zh) * 2017-06-30 2017-11-24 广东神马搜索科技有限公司 线程任务处理设备、装置及方法
US20200034212A1 (en) * 2018-07-24 2020-01-30 EMC IP Holding Company LLC Synchronization object prioritization systems and methods
CN111813554A (zh) * 2020-07-17 2020-10-23 济南浪潮数据技术有限公司 一种任务调度处理方法、装置及电子设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
欧广宇, 邓桂英: "多线程技术基于VB.NET的实现", 微机发展, no. 11 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113296960A (zh) * 2021-06-29 2021-08-24 中国平安人寿保险股份有限公司 数据准实时分发方法、装置、设备及存储介质
CN113296960B (zh) * 2021-06-29 2023-02-03 中国平安人寿保险股份有限公司 数据准实时分发方法、装置、设备及存储介质
CN114003175A (zh) * 2021-11-02 2022-02-01 青岛海信日立空调系统有限公司 一种空调器及其控制系统

Similar Documents

Publication Publication Date Title
CN109144710B (zh) 资源调度方法、装置及计算机可读存储介质
CN105579961B (zh) 数据处理系统及操作方法、用于数据处理系统的硬件单元
Qiao et al. Litz: Elastic framework for {High-Performance} distributed machine learning
US8234652B2 (en) Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks
US8713571B2 (en) Asynchronous task execution
US8108876B2 (en) Modifying an operation of one or more processors executing message passing interface tasks
US8127300B2 (en) Hardware based dynamic load balancing of message passing interface tasks
US7975269B2 (en) Parallel processor methods and apparatus
KR102334511B1 (ko) 작업 의존성 관리
US8141076B2 (en) Cell processor methods and apparatus
US20100083272A1 (en) Managing pools of dynamic resources
US20090064168A1 (en) System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks By Modifying Tasks
US20090064166A1 (en) System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks
JP2008186136A (ja) 計算機システム
CN112445614A (zh) 一种线程数据的存储管理方法、计算机设备及存储介质
CN111427675A (zh) 一种数据处理方法、装置以及计算机可读存储介质
WO2023082575A1 (zh) 一种面向神经网络模型计算的图执行流水并行方法和装置
CN111142943A (zh) 自动控制并发方法及装置
CN111459622B (zh) 调度虚拟cpu的方法、装置、计算机设备和存储介质
US20130125131A1 (en) Multi-core processor system, thread control method, and computer product
JP2009223842A (ja) 仮想計算機制御プログラム及び仮想計算機システム
US8977752B2 (en) Event-based dynamic resource provisioning
US8868876B2 (en) Dedicated large page memory pools
US20180270306A1 (en) Coexistence of a synchronous architecture and an asynchronous architecture in a server
WO2023044877A1 (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