【技术实现步骤摘要】
一种利用多线程的数据处理方法及系统
本专利技术涉及数据存储
,尤指一种利用多线程的数据处理方法及系统。
技术介绍
目前,在一些应用场景中,会存在数据量超大,数据计算处理时限超低的情况,例如几分钟内有几十G,几亿条数据或者更多,必须在一分钟或两分钟之内分析完并完成输出。由于数据具有连续性特点(一定时间范围数据具有关联性),比如通信行业信令数据合成等,如果应用传统的分析方法,将数据全部导入内存再进行分析显然是不合适的,而应用多线程加锁、同步互斥或者信号量通知等同步方法,仍然效率低下,因为无论是加锁、临界区互斥或者信号量通知等方法,都会造成某些时间段的流程,仍然是按单线程顺序执行,并没有真正实现多线程并发运行,这样的效率是满足不了实际要求。综上来看,现有技术中提出的多线程并发方法主要存在以下缺陷:1、不同处理线程间存在加锁、互斥或者信号量通知等,无论利用哪一种同步方式,都意味着在某些时间段同时只能有一个线程在运行,而其它个线程只能等待上一线程完成才能继续运行,因而性能相对于单线程来说提升有限;2、对于 ...
【技术保护点】
1.一种利用多线程的数据处理方法,其特征在于,该方法包括:/n设置环形存储区域,其中,所述环形存储区域包括原始数据队列及输出数据队列;/n同时执行数据检索线程、数据计算线程及数据输出线程;/n利用所述数据检索线程,读取原始数据,并将所述原始数据写入所述原始数据队列;/n利用所述数据计算线程,读取所述原始数据队列中的待读取数据,并进行处理得到处理结果,将所述处理结果写入所述输出数据队列;其中,所述原始数据队列中的待读取数据是已经写入完成的原始数据;/n利用所述数据输出线程,读取所述输出数据队列中的待读取数据,并进行输出;其中,所述输出数据队列中的待读取数据是已经写入完成的处理结果。/n
【技术特征摘要】
1.一种利用多线程的数据处理方法,其特征在于,该方法包括:
设置环形存储区域,其中,所述环形存储区域包括原始数据队列及输出数据队列;
同时执行数据检索线程、数据计算线程及数据输出线程;
利用所述数据检索线程,读取原始数据,并将所述原始数据写入所述原始数据队列;
利用所述数据计算线程,读取所述原始数据队列中的待读取数据,并进行处理得到处理结果,将所述处理结果写入所述输出数据队列;其中,所述原始数据队列中的待读取数据是已经写入完成的原始数据;
利用所述数据输出线程,读取所述输出数据队列中的待读取数据,并进行输出;其中,所述输出数据队列中的待读取数据是已经写入完成的处理结果。
2.根据权利要求1所述的利用多线程的数据处理方法,其特征在于,设置环形存储区域,包括:
设置两块环形存储区域,每一块环形存储区域具有一定的容量,所述容量根据预估的入队速度及出队速度进行设置;其中,第一块环形存储区域为原始数据队列;第二块环形存储区域为输出数据队列;
所述原始数据队列及输出数据队列为无锁环形队伍。
3.根据权利要求2所述的利用多线程的数据处理方法,其特征在于,所述原始数据队列中包含K个元素,每个元素的标志位状态为:待读取、读取中、待写入或写入中;
所述输出数据队列中包含L个元素,每个元素的标志位状态为:待读取、读取中、待写入或写入中。
4.根据权利要求3所述的利用多线程的数据处理方法,其特征在于,利用所述数据检索线程,读取原始数据,并写入所述原始数据队列,包括:
利用所述数据检索线程,读取原始数据,并依次检查所述原始数据队列中元素的标志位状态;
当遇到状态为待写入的元素,进行入队处理;
将所述原始数据写入至对应的元素,并将元素的标志位状态修改为写入中;
在写入完成后,将元素的标志位状态修改为待读取,并继续检查所述原始数据队列中元素的标志位状态。
5.根据权利要求4所述的利用多线程的数据处理方法,其特征在于,利用所述数据计算线程,读取所述原始数据队列中的待读取数据,并进行处理得到处理结果,将处理结果写入所述输出数据队列,还包括:
利用所述数据计算线程,依次检查所述原始数据队列中元素的标志位状态;
当遇到状态为待读取的元素,进行出队处理;
读取对应的元素中的待读取数据数据,并对读取到的数据进行分析处理得到处理结果;其中,在读取时,将元素的标志位状态修改为读取中;
利用所述数据计算线程,依次检查所述输出数据队列中元素的标志位状态;
当遇到状态为待写入的元素,进行入队处理;
将所述处理结果写入对应的元素,并将元素的标志位状态修改为写入中;
在写入完成后,将元素的标志位状态修改...
【专利技术属性】
技术研发人员:王建成,
申请(专利权)人:中盈优创资讯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。