一种多线程计数操作控制方法技术

技术编号:19009009 阅读:32 留言:0更新日期:2018-09-22 08:54
本发明专利技术涉及一种多线程计数操作控制方法,在多核心处理器多线程计数环境下,针对计数存储空间,划分为第一计数器存储空间和第二计数器存储空间,基于指针指向,并结合两存储空间应用中的对调,实现精确快速计数,用于解决现有技术中出现计数效率低下和计数不准确的问题,能够极大的提高计数性能和准确性。

A multithread counting operation control method

The invention relates to a multi-thread counting operation control method, which is divided into the first counter storage space and the second counter storage space for the counting storage space in the multi-core processor multi-thread counting environment. Based on pointer pointing and combined with the adjustment in the application of the two storage spaces, accurate and fast counting is realized. In order to solve the problems of low counting efficiency and inaccurate counting in the prior art, the counting performance and accuracy can be greatly improved.

【技术实现步骤摘要】
一种多线程计数操作控制方法
本专利技术涉及一种多线程计数操作控制方法,属于通信计数

技术介绍
现有计数装置在多核心处理器和多线程同时计数情况下,通常采用间接的方法来保证计数数据的准确、顺利读取和更新。一种普遍的实现是采用在全局唯一的计数器上加锁的方式,保证每次只有一个线程可以修改计数数据。如图1所示另一种普遍的实现是采用维护多个计数器103的方式,每个更新计数器的线程只修改其对应的计数器102,当需要读取数据时,读取线程依次累加各个计数器的数值101,即得到总的计数值。但是现有技术存在如下的缺点:首先,对于第一种方法,当大量数据需要更新时,多个线程竞争保护锁,从而导致阻塞,降低计数的效率,无法满足大数据量下的计数任务。对于第二种方法,由于读取线程读取每个计数器需要一定的时间,当读取某个计数器时,可能发生其他计数器的数据被其他的更新线程更改,从而导致最终的累加结果中各个计数器的计数结果不一致,导致计数结果不精确。这种问题在大数据量和线程数较多的情况下尤其明显。因此,计数效率和计数准确性的问题已经严重影响了多核心处理器和多线程情况下的技术准确性和效率。
技术实现思路
本专利技术所要解决的技术问题是提供一种多线程计数操作控制方法,在多核心处理器多线程计数环境下,通过精确快速计数,用于解决现有技术中出现计数效率低下和计数不准确的问题,能够极大的提高计数性能和准确性。本专利技术为了解决上述技术问题采用以下技术方案:本专利技术设计了一种多线程计数操作控制方法,用于实现多线程针对计数存储空间中对应计数器操作的控制,所述计数操作控制方法包括计数处理器计数更新操作控制方法,以及应用程序计数读取操作控制方法,所述计数存储空间包括第一计数器存储空间和第二计数器存储空间,其中,第一计数器存储空间中存储单元数量、第二计数器存储空间中存储单元数量,均与计数处理器中线程数量相等;计数处理器中各线程、第一计数器存储空间中各存储单元内计数器、第二计数器存储空间中各存储单元内计数器三者一一对应;所述计数操作控制方法初始化计数更新操作指针和计数读取操作指针,并且初始化计数更新操作指针指向第一计数器存储空间、第二计数器存储空间中的其中一个计数器存储空间,计数读取操作指针指向另一个计数器存储空间;计数处理器计数更新操作控制方法如下:计数处理器中各线程分别针对计数更新操作指针所指向计数器存储空间中对应存储单元内的计数器,分别执行计数更新操作,完成本次计数处理器计数更新操作;应用程序计数读取操作控制方法包括如下步骤:步骤A1.将计数更新操作指针所指向的计数器存储空间,与计数读取操作指针所指向的计数器存储空间对调,然后进入步骤A2;步骤A2.应用程序依次遍历计数读取操作指针所指向计数器存储空间中的各个存储单元,针对各个存储单元内的计数器进行累加,执行计数读取操作,完成本次应用程序计数读取操作,然后进入步骤A3;步骤A3.针对计数读取操作指针所指向计数器存储空间进行清零操作。作为本专利技术的一种优选技术方案:还包括全局计数操作控制方法,其中,初始化全局计数器,每次完成所述应用程序计数读取操作后,执行全局计数操作控制方法,如下步骤:步骤B1.针对所述计数读取操作指针所指向的计数器存储空间,将计数器存储空间中各存储单元内计数器的值进行累加,获得单次总计数值,并进入步骤B2;步骤B2.针对全局计数器的值,采用单次总计数值进行累加,更新全局计数器的值,完成全局计数操作。本专利技术所述一种多线程计数操作控制方法采用以上技术方案与现有技术相比,具有以下技术效果:本专利技术设计的多线程计数操作控制方法,在多核心处理器多线程计数环境下,针对计数存储空间,划分为第一计数器存储空间和第二计数器存储空间,基于指针指向,并结合两存储空间应用中的对调,实现精确快速计数,用于解决现有技术中出现计数效率低下和计数不准确的问题,能够极大的提高计数性能和准确性。附图说明图1是现有技术技术架构示意图;图2是本专利技术所设计多线程计数操作控制方法的架构示意图。具体实施方式下面结合说明书附图对本专利技术的具体实施方式作进一步详细的说明。如图2所示,本专利技术设计了一种多线程计数操作控制方法,用于实现多线程针对计数存储空间中对应计数器操作的控制,实际应用中,所述计数操作控制方法具体包括计数处理器计数更新操作控制方法、应用程序计数读取操作控制方法和全局计数操作控制方法,所述计数存储空间包括第一计数器存储空间和第二计数器存储空间,其中,第一计数器存储空间中存储单元数量、第二计数器存储空间中存储单元数量,均与计数处理器中线程数量相等;计数处理器中各线程、第一计数器存储空间中各存储单元内计数器、第二计数器存储空间中各存储单元内计数器三者一一对应。所述计数操作控制方法初始化计数更新操作指针和计数读取操作指针,并且初始化计数更新操作指针指向第一计数器存储空间、第二计数器存储空间中的其中一个计数器存储空间,计数读取操作指针指向另一个计数器存储空间。计数处理器计数更新操作的更新线程需要更新计数器数据时,只更新其对应的计数器存储空间,如此,区分正在读取的计数器和正在写入数据的计数器,从而使计数数据不会因为读取时的意外更新而导致不精确。具体地,计数处理器计数更新操作控制方法如下:计数处理器中各线程分别针对计数更新操作指针所指向计数器存储空间中对应存储单元内的计数器,分别执行计数更新操作,完成本次计数处理器计数更新操作。当应用程序计数读取操作的读取线程需要读取计数器数据时,使更新线程不再修改更新线程正在读取的计数器队列,能够快速交换计数器队列,从而避免因为切换队列而导致的数据丢失。具体地,应用程序计数读取操作控制方法包括如下步骤:步骤A1.将计数更新操作指针所指向的计数器存储空间,与计数读取操作指针所指向的计数器存储空间对调,然后进入步骤A2。步骤A2.应用程序依次遍历计数读取操作指针所指向计数器存储空间中的各个存储单元,针对各个存储单元内的计数器进行累加,执行计数读取操作,完成本次应用程序计数读取操作,然后进入步骤A3。步骤A3.针对计数读取操作指针所指向计数器存储空间进行清零操作。全局计数操作控制方法,其中,初始化全局计数器,每次完成所述应用程序计数读取操作后,执行全局计数操作控制方法,如下步骤:步骤B1.针对所述计数读取操作指针所指向的计数器存储空间,将计数器存储空间中各存储单元内计数器的值进行累加,获得单次总计数值,并进入步骤B2。步骤B2.针对全局计数器的值,采用单次总计数值进行累加,更新全局计数器的值,完成全局计数操作。上述所设计多线程计数操作控制方法,在实际应用中,如图2所示,首先,初始化两个存储空间,即第一计数器存储空间、第二计数器存储空间,并分配两个指针,即计数读取操作指针201和计数更新操作指针202,分别指向这两个存储空间,每个存储空间中的存储单元数量与计数处理器203的线程数量相同,且与每个线程一一对应。这些存储空间用于存储每个计数处理器线程所统计的流量数据值。然后,当有网络流量通过计数处理器203时,各个更新线程分别将自己所统计的流量信息记录写入计数更新操作指针202所指向存储空间的对应存储单元上,完成数据流量的写操作。当有应用程序204需要读取网络数据流量时,计数读取操作指针201和计数更新操作指针202本文档来自技高网...
一种多线程计数操作控制方法

【技术保护点】
1.一种多线程计数操作控制方法,用于实现多线程针对计数存储空间中对应计数器操作的控制,其特征在于:所述计数操作控制方法包括计数处理器计数更新操作控制方法,以及应用程序计数读取操作控制方法,所述计数存储空间包括第一计数器存储空间和第二计数器存储空间,其中,第一计数器存储空间中存储单元数量、第二计数器存储空间中存储单元数量,均与计数处理器中线程数量相等;计数处理器中各线程、第一计数器存储空间中各存储单元内计数器、第二计数器存储空间中各存储单元内计数器三者一一对应;所述计数操作控制方法初始化计数更新操作指针和计数读取操作指针,并且初始化计数更新操作指针指向第一计数器存储空间、第二计数器存储空间中的其中一个计数器存储空间,计数读取操作指针指向另一个计数器存储空间;计数处理器计数更新操作控制方法如下:计数处理器中各线程分别针对计数更新操作指针所指向计数器存储空间中对应存储单元内的计数器,分别执行计数更新操作,完成本次计数处理器计数更新操作;应用程序计数读取操作控制方法包括如下步骤:步骤A1. 将计数更新操作指针所指向的计数器存储空间,与计数读取操作指针所指向的计数器存储空间对调,然后进入步骤A2;步骤A2. 应用程序依次遍历计数读取操作指针所指向计数器存储空间中的各个存储单元,针对各个存储单元内的计数器进行累加,执行计数读取操作,完成本次应用程序计数读取操作,然后进入步骤A3;步骤A3. 针对计数读取操作指针所指向计数器存储空间进行清零操作。...

【技术特征摘要】
1.一种多线程计数操作控制方法,用于实现多线程针对计数存储空间中对应计数器操作的控制,其特征在于:所述计数操作控制方法包括计数处理器计数更新操作控制方法,以及应用程序计数读取操作控制方法,所述计数存储空间包括第一计数器存储空间和第二计数器存储空间,其中,第一计数器存储空间中存储单元数量、第二计数器存储空间中存储单元数量,均与计数处理器中线程数量相等;计数处理器中各线程、第一计数器存储空间中各存储单元内计数器、第二计数器存储空间中各存储单元内计数器三者一一对应;所述计数操作控制方法初始化计数更新操作指针和计数读取操作指针,并且初始化计数更新操作指针指向第一计数器存储空间、第二计数器存储空间中的其中一个计数器存储空间,计数读取操作指针指向另一个计数器存储空间;计数处理器计数更新操作控制方法如下:计数处理器中各线程分别针对计数更新操作指针所指向计数器存储空间中对应存储单元内的计数器,分别执行计数更新操作,完成本次计数处理器计数更...

【专利技术属性】
技术研发人员:王俊昌高亮付雄
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1