本发明专利技术属于数字化处理技术领域,具体涉及一种不同任务遍历大量共享数据的高效处理方法及系统。该系统包括碎单元管理模块和若干个任务模块,所述的碎单元管理模块把共享数据拆分成若干个碎单元,对碎单元进行增删,并对每个碎单元进行编号,保存碎单元的信息;所述的若干个任务模块能够同时对不同的碎单元数据进行操作处理;碎单元管理模块根据各任务模块对不同碎单元数据的处理结果更改碎单元信息,并只允许任务模块对状态为未有任务处理的碎单元进行操作处理。本发明专利技术能够大幅提高多任务对大共享数据操作的效率。
【技术实现步骤摘要】
不同任务遍历大量共享数据的高效处理方法及系统
本专利技术属于数字化处理
,具体涉及一种不同任务遍历大量共享数据的高效处理方法及系统。
技术介绍
目前在很多应用开发中,多处业务要对共享数据根据一定的规则进行删除、增加等操作处理。当多线程对共享数据进行操作处理时,为了保证数据的安全性,一般来说,多任务无法对共享数据进行同时操作,只能等待一个任务对共享数据处理完毕后,下一个任务才能接着开始处理相同的共享数据,依次类推。在某些应用场景中,由于任务很多,共享数据量非常巨大,一个任务要处理完毕所有共享数据需要的时间较长,这就使得下一个任务处理相同共享数据时需要等待较长的时间,甚至在下一个任务还没能等到处理共享数据的时候,再下一个任务也已经进入排队等待中,这种多任务对共享数据的处理方法不仅效率低下,甚至有可能导致程序服务宕机。
技术实现思路
本专利技术的目的在于针对现有技术的缺陷,提供一种不同任务遍历大量共享数据的处理方法及系统,使得多个任务同时处理同一份共享数据的不同段,以实现多任务对同一大共享数据的高效操作处理。本专利技术的技术方案如下:一种不同任务遍历大量共享数据的高效处理方法,包括如下步骤:(1)把共享数据拆分成若干个碎单元,并建立碎单元管理模块;(2)任务A在对所述共享数据进行操作之前,首先通过碎单元管理模块获取碎单元的总数量;(3)任务A随机取得一个碎单元的编号,并向所述碎单元管理模块请求对此编号的碎单元数据进行操作;(4)所述碎单元管理模块查看相应编号的碎单元状态,并判断任务A是否能对该碎单元进行操作处理;(5)任务A收到碎单元管理模块的判断信息后,根据所述判断信息确定是对当前编号的碎单元数据进行处理,还是重新随机请求一个新的碎单元编号;如果需要重新随机请求一个新的碎单元编号,则返回步骤(3);(6)任务A对当前能够处理的碎单元数据完成操作处理后,从获取的碎单元的总数量中删除该碎单元的编号,并通知所述碎单元管理模块该编号的碎单元中数据已经处理完毕;碎单元管理模块对该编号的碎单元的状态信息进行更新;(7)任务A更新未处理的碎单元的总数量,返回步骤(3),进行循环操作,直至完成整个共享数据的处理。进一步,如上所述的不同任务遍历大量共享数据的高效处理方法,步骤(4)中所述碎单元管理模块查看相应编号的碎单元状态,确定是否有其他任务在操作此编号的碎单元数据,若此编号的碎单元数据未有任务处理,则把该碎单元状态改为任务占用,把数据操作权限交给任务A处理;如果此碎单元是被占用状态,则通知任务A该碎单元数据被其他任务占用。更进一步,步骤(5)中如果任务A收到碎单元管理模块返回的判断信息显示有其他任务正在对相应编号的碎单元数据进行占用,则重新随机请求一个新的碎单元编号。进一步,如上所述的不同任务遍历大量共享数据的高效处理方法,其中,如果步骤(7)中任务A未处理的碎单元的总数量小于设定值(比如10,建议5),随机取得一个碎单元编号向碎单元管理模块发出数据处理请求,碎单元管理模块返回信息显示此编号的碎单元数据处于其他任务占用中,则延迟一段时间(根据情况而定,一般为1-3秒)再随机取得一个编号向碎单元管理模块发出请求。进一步,如上所述的不同任务遍历大量共享数据的高效处理方法,其中,多个任务同时进行所述步骤(2)-(7)的操作。进一步,如上所述的不同任务遍历大量共享数据的高效处理方法,其中,如果任务B向碎单元管理模块发送的操作请求不包含碎单元编号,则表明任务B向碎单元管理模块请求共享数据增加,此时,碎单元管理模块查找处于未占用状态数据总量最少的碎单元设置任务占用状态,并把此碎单元交给任务B操作,任务B完成共享数据增加操作后,通知碎单元管理模块操作完毕,碎单元管理模块接到指令后,把此碎单元状态该为未占用状态,并更新此碎单元信息,便于其他任务对该数据进行操作。一种不同任务遍历大量共享数据的高效处理系统,包括碎单元管理模块和若干个任务模块,所述的碎单元管理模块把共享数据拆分成若干个碎单元,对碎单元进行增删,并对每个碎单元进行编号,保存碎单元的信息;所述的若干个任务模块能够同时对不同的碎单元数据进行操作处理;碎单元管理模块根据各任务模块对不同碎单元数据的处理结果更改碎单元信息,并只允许任务模块对状态为未有任务处理的碎单元进行操作处理。进一步,如上所述的不同任务遍历大量共享数据的高效处理系统,所述的碎单元的信息包括碎单元的总数量、每个碎单元的状态、每个碎单元数据的总量。进一步,如上所述的不同任务遍历大量共享数据的高效处理系统,其中,所述的碎单元的总数量为任务模块数量的五倍以上。本专利技术的有益效果如下:本专利技术把共享数据分成多份,让多个任务进行每一份处理,处理完毕后,再随机抽取下一份处理,直到所有共享数据处理完毕。本专利技术能够让多任务同时对大量共享数据进行操作,实现多个任务同时处理同一份共享数据的不同段,处理过程不需等待,随机处理的方式可降低多任务同一时间操作同一数据段的几率,从而大幅提高了多任务对大共享数据操作的效率。附图说明图1为本专利技术碎单元管理模块(简称碎管)与碎单元(简称碎)的关系示意图;图2为本专利技术技术方案中编号被其他任务占用的处理流程图;图3为本专利技术技术方案中任务(增删改)操作数据流程图;图4为本专利技术技术方案中只增加数据任务流程图。具体实施方式下面结合附图和实施例对本专利技术进行详细的介绍。本专利技术是基于多个任务处理大共享数据解决同时对共享数据增删处理的一种逻辑方法,是在多个任务同时对大共享数据进行操作时,大共享数据不可同时读写的一种处理办法。主要用于共享数据存储于服务器内存中,多线程对共享数据无法同时读写操作时的一种解决方案。本专利技术主要原理就是把共享数据分成多份,让多个任务进行每一份处理,处理完毕后,再随机抽取下一份处理,直到所有共享数据处理完毕。达到多个任务同时处理同一份共享数据不同段,多任务对同一大共享数据高效操作的目的。本专利技术的原理与如下生活中的实例如出一辙,比如把10本书看成一个整体,有10个学生要看这10本书,一个学生只能看一本书,另九本书处于空闲时间,就应该让其他九个学生各选一本书籍阅览,而不是等该学生把这10本都阅读完后,再给下一个学生读,让其他学生处于无书可读等待中。本专利技术要实现多任务同时高效处理大量共享数据,多个任务处理共享数据必须满足如下两个前提,1)共享数据任务处理不区分先后顺序;2)多任务处理共享数据操作不影响其他任务处理。每个任务遍历处理完共享数据时长不一定相等,每个任务在相同时间单位内触发次数也不一致,遍历一次共享数据我们采用任务随机获取某份数据的概率处理机制,这里提出了碎单元的一个概念,并通过建立碎单元管理模块加以实现。从系统的角度来看,本专利技术所提供的不同任务遍历大量共享数据的高效处理系统包括碎单元管理模块和若干个任务模块。所述的碎单元管理模块(简称碎管)把共享数据拆分成若干个碎单元(简称碎),对碎单元进行增删,并对每个碎单元进行编号,用来区分每个碎单元的身份,保存碎单元的信息,这些信息包括碎单元的总数量、每个碎单元的状态、每个碎单元数据的总量等,如图1所示。所述的若干个任务模块能够同时对不同的碎单元数据进行操作处理;碎单元管理模块根据各任务模块对不同碎单元数据的处理结果更改碎单元信息,并只允许任务模块对本文档来自技高网...
【技术保护点】
一种不同任务遍历大量共享数据的高效处理方法,包括如下步骤:(1)把共享数据拆分成若干个碎单元,并建立碎单元管理模块;(2)任务A在对所述共享数据进行操作之前,首先通过碎单元管理模块获取碎单元的总数量;(3)任务A随机取得一个碎单元的编号,并向所述碎单元管理模块请求对此编号的碎单元数据进行操作;(4)所述碎单元管理模块查看相应编号的碎单元状态,并判断任务A是否能对该碎单元进行操作处理;(5)任务A收到碎单元管理模块的判断信息后,根据所述判断信息确定是对当前编号的碎单元数据进行处理,还是重新随机请求一个新的碎单元编号;如果需要重新随机请求一个新的碎单元编号,则返回步骤(3);(6)任务A对当前能够处理的碎单元数据完成操作处理后,从获取的碎单元的总数量中删除该碎单元的编号,并通知所述碎单元管理模块该编号的碎单元中数据已经处理完毕;碎单元管理模块对该编号的碎单元的状态信息进行更新;(7)任务A更新未处理的碎单元的总数量,返回步骤(3),进行循环操作,直至完成整个共享数据的处理。
【技术特征摘要】
1.一种不同任务遍历大量共享数据的高效处理方法,包括如下步骤:(1)把共享数据拆分成若干个碎单元,并建立碎单元管理模块;(2)任务A在对所述共享数据进行操作之前,首先通过碎单元管理模块获取碎单元的总数量;(3)任务A随机取得一个碎单元的编号,并向所述碎单元管理模块请求对此编号的碎单元数据进行操作;(4)所述碎单元管理模块查看相应编号的碎单元状态,并判断任务A是否能对该碎单元进行操作处理;(5)任务A收到碎单元管理模块的判断信息后,根据所述判断信息确定是对当前编号的碎单元数据进行处理,还是重新随机请求一个新的碎单元编号;如果需要重新随机请求一个新的碎单元编号,则返回步骤(3);(6)任务A对当前能够处理的碎单元数据完成操作处理后,从获取的碎单元的总数量中删除该碎单元的编号,并通知所述碎单元管理模块该编号的碎单元中数据已经处理完毕;碎单元管理模块对该编号的碎单元的状态信息进行更新;(7)任务A更新未处理的碎单元的总数量,返回步骤(3),进行循环操作,直至完成整个共享数据的处理。2.如权利要求1所述的不同任务遍历大量共享数据的高效处理方法,其特征在于:步骤(4)中所述碎单元管理模块查看相应编号的碎单元状态,确定是否有其他任务在操作此编号的碎单元数据,若此编号的碎单元数据未有任务处理,则把该碎单元状态改为任务占用,把数据操作权限交给任务A处理;如果此碎单元是被占用状态,则通知任务A该碎单元数据被其他任务占用。3.如权利要求2所述的不同任务遍历大量共享数据的高效处理方法,其特征在于:步骤(5)中如果任务A收到碎单元管理模块返回的判断信息显示有其他任务正在对相应编号的碎单元数据进行占用,则重新随机请求一个新的碎单元编号。4.如权利要求1所述的不同任务遍历大量共享数据的高效处理方法,其特征在于:如果步骤(7)中任务A未处理的碎单元的总数量小于设...
【专利技术属性】
技术研发人员:王序东,
申请(专利权)人:明博教育科技股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。