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

文档序号:24160702发布日期:2021-03-05 16:25阅读:60来源:国知局
一种线程数据的存储管理方法、计算机设备及存储介质与流程

[0001]
本发明属于计算机技术领域,尤其涉及一种线程数据的存储管理方法、计算机设备及存储介质。


背景技术:

[0002]
现如今,ios应用软件的开发者多数是直接用gcd(grand central dispatch,是apple开发的一个多核编程的较新的解决方法,它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统,是一个在线程池模式的基础上执行的并行任务)这个官方框架来直接做异步的线程操作,实现多线程的并行处理任务数据,而在并发处理的过程中,因为待处理的任务数据的派发速度大于应用的cpu的运行速度,故为了防止堵塞,派发出的任务数据需要等待被执行,即会形成大量的队列,从而产生数量庞大的线程,队列的形成过程会消耗cpu的性能,产生的大量的线程会占用cpu的内存,故在gcd的使用过程中会导致线程数量不受控制,浪费cpu的性能以及运行资源。


技术实现要素:

[0003]
本发明的目的是提供一种线程数据的存储管理方法、计算机设备及存储介质,能够解决并行处理派发的任务时的线程过多而浪费cpu的性能以及运行资源的问题。
[0004]
为了实现上述目的,本发明采用如下技术方案:
[0005]
一种线程数据的存储管理方法,包括:
[0006]
获取分发请求;
[0007]
根据所述分发请求获取待分发对象,所述待分发对象携带有对象信息;
[0008]
根据所述对象信息调用线程结构,定义所述线程结构的子结构的优先级;
[0009]
根据所述分发请求定义所述待分发对象的优先级;
[0010]
将所述待分发请求根据优先级与所述子结构进行匹配,将所述待分发对象分发至匹配后的所述子结构中进行存储。
[0011]
进一步地,定义所述线程结构的子结构的优先级,包括:
[0012]
所述线程结构至少包括两个子结构,分别定义所述子结构的优先级;
[0013]
根据cpu激活核心数确定所述子结构中串行队列的数量。
[0014]
进一步地,根据所述对象信息调用线程结构,包括:
[0015]
所述待分发对象至少存储有一个待分发任务;
[0016]
所述对象信息包括所述待分发任务的任务种类,根据所述任务种类调用对应的线程结构。
[0017]
进一步地,根据所述分发请求定义所述待分发对象的优先级,包括:
[0018]
所述分发请求携带有请求信息,根据所述请求信息定义所述待分发对象的优先级。
[0019]
进一步地,将所述待分发请求根据优先级与所述子结构进行匹配,将所述待分发
对象分发至匹配后的所述队列池中进行存储,包括:
[0020]
匹配优先级相同的所述待分发对象和所述子结构;
[0021]
轮询所述子结构中串行队列的空闲状态,根据串行队列的空闲状态选定队列,将所述待分发对象分发至选定后的串行队列中进行存储。
[0022]
进一步地,轮询所述子结构中串行队列的空闲状态,根据串行队列的空闲状态选定队列,将所述待分发对象分发至选定后的串行队列中进行存储,包括:
[0023]
轮询所述子结构的串行队列中已存储的任务数量,将串行队列根据任务数量递增的方式进行排序;
[0024]
将所述待分发对象轮询分发至排序后的串行队列中进行存储。
[0025]
一种计算机设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现所述的线程数据的存储管理方法。
[0026]
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的线程数据的存储管理方法。
[0027]
由以上本申请实施方式提供的技术方案可见,本发明根据分发请求获取可能堵塞主线程运行的待分发对象,通过调用相匹配的设定有优先级别的线程结构的子结构,将对应优先级的待分发对象进行存储,供需执行时依照优先级对其进行有序派发执行,存储位空闲后能够对线程结构进行复用,以此控制了线程的数量,避免了cpu的性能以及运行资源的浪费。
附图说明
[0028]
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0029]
图1为本发明一实施例提供的一种线程数据的存储管理方法的流程示意图;
[0030]
图2为本发明一实施例提供的计算机设备的结构示意图。
具体实施方式
[0031]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0032]
本申请一实施例提供了一种线程数据的存储管理方法,在运行本申请的存储管理方法之前需要创建所应用的线程结构,所述线程结构可存储有用于匹配待分发对象的标识性信息,还包括标识可存放队列池的子结构,以及派发任务对象时应用的偏移值,偏移值设于每个子结构上,在派发任务时根据每个子结构的偏移值依次派发对应子结构下存储的待分发对象,创建后的线程结构应用所述存储管理方法对线程数据即待分发对象进行存储,本申请该实施例中的存储管理方法,如图1所示,其包括如下其方法步骤:
[0033]
s1,获取分发请求。
[0034]
本实施例中,在系统派发并发任务数据后,数据交互接口未能接收到反馈信号,基于未接收到反馈信号的任务数据会产生分发请求,防止开启大量的存放有任务数据的并行
队列,降低系统对并行队列顺序和数量的控制力。
[0035]
s2,根据所述分发请求获取待分发对象,所述待分发对象携带有对象信息。
[0036]
由于分发请求是基于未接收到反馈信号的任务数据而产生,故能够根据分发请求获取存放上述任务数据的待分发对象,并且所述待分发对象携带有对象信息。
[0037]
s3,根据所述对象信息调用线程结构,定义所述线程结构的子结构的优先级。
[0038]
本实施例中,由于待分发对象至少存放有一个待分发任务,故本实施例中将所述待分发任务的任务种类作为对象信息,例如下载任务、渲染任务或图片处理任务等。
[0039]
另外,因为线程结构包括能够存储用于匹配待分发对象的标识性信息,标识性信息与待分发对象的对象信息相对应,即不同的线程结构都对应不同的任务种类,故能够通过待分发对象中存放的任务的种类,调用相匹配的线程结构。
[0040]
所调用的所述线程结构至少包括两个子结构,本实施例中的线程结构包括有四个子结构,分别定义所述子结构派发任务的优先级,可以包括高优先级、默认优先级、低优先级和后台优先级,即每个优先级都对应一个子结构,且子结构为队列池,队列池中的队列通过for循环生成串行队列,根据cpu激活核心数确定队列数量,例如应用双核cpu时,队列池即子结构中串行队列的队列数量为两个,与核心数对应。
[0041]
s4,根据所述分发请求定义所述待分发对象的优先级。
[0042]
所述分发请求携带有请求信息,所述请求信息可以包括任务执行环境、环境下任务的种类以及业务需求,例如处于使用修图软件的环境下时任务有图片处理任务和下载任务,则图片处理任务的优先级高于下载任务,或者根据客户的业务需求定义指定的任务为高优先级的优先级,故在本实施例中体现为,能够根据上述的各项请求信息定义所述待分发对象的优先级,即待分发对象的任务的处理顺序。
[0043]
s5,将所述待分发对象根据优先级与所述子结构进行匹配,将所述待分发对象分发至匹配后的所述子结构中进行存储。
[0044]
完成待分发对象的优先级定义后,匹配优先级相同的所述待分发对象和所述子结构;之后轮询所述子结构中所有串行队列的空闲状态,根据串行队列的空闲状态选定队列,选出空闲状态即未存储有待分发对象的任务的串行队列,将所述待分发对象优先分发至选定后的该空闲串行队列中进行存储。
[0045]
在本申请的另一实施例中,当匹配的优先级下的串行队列均未处于空闲状态,则在轮询所有的串行队列时,检测出每个串行队列中已经存储的任务数量,将同一优先级对应的串行队列根据任务数量递增的方式进行排序,将所述待分发对象轮询分发至排序后的串行队列中进行存储,优先将待分发任务存储至任务数量少的队列中。
[0046]
本申请上述实施例提供的一种线程数据的存储管理方法,通过分发请求获取对应的待分发对象,之后根据待分发对象中的任务种类调用对应的线程结构,并根据分发请求定义待分发对象的优先级,以此匹配待分发对象和线程结构中的子结构,将待分发对象存储至子结构的数量等同于cpu核心数的串行队列中,然后在派发已经存储的任务的时候依据优先级轮询串行队列执行,控制了任务的执行迅速,尽量让cpu能得到充分的使用,并且线程结构的串行队列空闲后仍然可以缓存其他的待分发对象,以此达到线程结构的最大化复用,即控制了线程的总数量,减少了创建过多线程带来的内存消耗,避免了cpu的性能以及运行资源的浪费。
[0047]
本发明公开的计算机设备的一个实施例的结构示意图如图2所示,其包括存储器101和处理器102。其中:存储器101可以是磁盘、闪存或其它任何非易失性存储介质。存储器102用于存储上述的页面中动画的生成方法的对应实施例中的指令。处理器102耦接至存储器101,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器102用于执行存储器101中存储的指令,能够降低动画显示对存储空间的占用,方便生成和显示动态内容的无规律移动的动画效果。
[0048]
在另一实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现所述的页面中动画的生成方法的步骤。本领域内的技术人员应明白,本发明的实施例可提供为方法、设备、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0049]
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1