多线程计算系统及其数据处理方法技术方案

技术编号:17516389 阅读:23 留言:0更新日期:2018-03-21 01:00
本发明专利技术提供了多线程计算系统及其数据处理方法,该方法包括:创建自选举锁、加工锁和加工辅助锁;从多个处理池中选择一个处理池,将所选处理池的标识写入加工锁,并且多个线程在所选处理池中处理数据;当加工锁失效时,所述多个线程执行自选举操作,其中所述多个线程之一将自己的线程标识符写入自选举锁;每一个线程将自己的线程标识符与写入自选举锁的线程标识符进行比较,如果与写入自选举锁的线程标识符不同,则该线程在与加工辅助锁中记录的处理池标识相对应的处理池里处理数据;由线程标识符与写入自选举锁的线程标识符相同的线程用新的处理池标识更新加工锁;以及将全部线程切换到与新的处理池标识相对应的处理池里进行数据处理。

Multithread computing system and its data processing method

The invention provides a multi thread computing system and data processing method, the method includes: creating the election lock, lock and lock the auxiliary processing processing; choose a treatment tank from multiple treatment tank, the selected processing pool identification processing write lock, and a plurality of thread processing data in the selected processing pool when processing; lock failure, the multiple threads of execution since the election operation, wherein the plurality of thread thread identifier own election write lock; each thread thread identifier is compared with their written election thread identifier of the lock, if different from the written election thread identifier lock the processing of the thread pool is recorded in the auxiliary lock in processing and processing in the corresponding pool identity data processing by the thread identifier; and write the election thread lock the same thread identifier The new processing pool identifies the update process lock; and switches all threads to the processing pool that corresponds to the new processing pool identity.

【技术实现步骤摘要】
多线程计算系统及其数据处理方法
本公开涉及数据处理领域,具体地,涉及一种多线程计算系统以及多线程计算系统中的数据处理方法。
技术介绍
随着信息技术的发展,需要处理的数据信息量不断增大。尤其在电子商务领域,大数据处理技术得到了广泛应用。例如,在基于电子商务的订单合单过程中,需要提取大量的订单属性,然后将具有相同属性的订单合并。由于订单量巨大,需要将订单放入不同的处理池,以便分别进行处理。为了提高效率,针对每个处理池,运用多个应用实例来同时提取订单属性。然而,多个应用实例同时作用于多个处理池导致在资源使用方面出现频繁的竞争。为了解决资源使用方面出现的竞争,目前使用的常规方法是采用单一锁技术。也就是说,在访问竞争性资源时,一旦多个应用实例中的一个应用实例握住锁以进行处理,其他应用实例就需要等待,直到这个应用实例释放锁为止。因此,单一锁技术往往导致多个应用实例的阻塞,从而引起不必要的时间浪费且降低系统的执行效率。因此,需要一种多线程计算系统以及多线程计算系统中的数据处理方法,使得能够在解决多应用实例间的资源竞争的同时避免不必要的时间浪费,从而能够确保在处理池切换过程中的数据的完整性和平滑性。
技术实现思路
本公开的方面在于解决至少上述问题和/或缺点并提供至少下述优点。根据本公开的示例实施例,提供了一种多线程计算系统中的数据处理方法,可以包括:创建用于记录线程标识符的自选举锁以及用于记录处理池标识的加工锁和加工辅助锁;从多个处理池中选择一个处理池,将所选处理池的标识写入加工锁,并且多个线程在所选处理池中处理数据;当加工锁失效时,所述多个线程执行自选举操作,其中所述多个线程之一将自己的线程标识符写入自选举锁;所述多个线程中的每一个将自己的线程标识符与写入自选举锁的线程标识符进行比较,如果与写入自选举锁的线程标识符不同,则该线程在与加工辅助锁中记录的处理池标识相对应的处理池里处理数据;由线程标识符与写入自选举锁的线程标识符相同的线程用新的处理池标识更新加工锁;以及所述多个线程全部切换到与新的处理池标识相对应的处理池里进行数据处理。可选地,当一个线程将自己的线程标识符写入自选举锁时,在自选举锁的有效期内,其他线程无法重写所述线程标识符。可选地,每个处理池可以实现为链表形式。可选地,所述自选举锁可以具有有效期,且如果在没有完成更新加工锁的情况下自选举锁失效,则重新执行自选举操作,直到更新加工锁完成为止。可选地,所述方法还可以包括:用新的处理池标识更新加工辅助锁。可选地,所述加工锁可以具有有效期,其中在所述加工锁的有效期内,所述多个线程在与所述加工锁中记录的处理池标识相对应的处理池里进行数据处理。根据本公开的示例实施例,提供了一种多线程计算系统,可以包括:一个或多个处理装置,配置为执行多线程操作;以及一个或多个存储装置,配置为存储数据,并包括多个处理池,其中所述一个或多个处理装置配置为:在所述一个或多个存储装置中创建用于记录线程标识符的自选举锁以及用于记录处理池标识的加工锁和加工辅助锁;从多个处理池中选择一个处理池,将所选处理池的标识写入加工锁,并且经由多个线程在所选处理池中处理数据;当加工锁失效时,由所述多个线程执行自选举操作,其中所述多个线程之一将自己的线程标识符写入自选举锁;所述多个线程中的每一个将自己的线程标识符与写入自选举锁的线程标识符进行比较,如果与写入自选举锁的线程标识符不同,则该线程在与加工辅助锁中记录的处理池标识相对应的处理池中处理数据;由线程标识符与写入自选举锁的线程标识符相同的线程用新的处理池标识更新加工锁;以及所述多个线程全部切换到与新的处理池标识相对应的处理池里进行数据处理。可选地,所述自选举锁可以具有有效期,且所述一个或多个处理装置还可以配置为如果在没有完成更新加工锁的情况下自选举锁失效,则重新执行自选举操作,直到更新加工锁完成为止。可选地,所述一个或多个处理装置还可以配置为用新的处理池标识更新加工辅助锁。可选地,所述加工锁可以具有有效期,且所述一个或多个处理装置还可以配置为在所述加工锁的有效期内,所述多个线程在与所述加工锁中记录的处理池标识相对应的处理池里进行数据处理。附图说明以下结合附图,将更清楚本公开的示例实施例的上述和其它方面、特征以及优点,附图中:图1示出了根据本专利技术示例实施例的多线程计算系统的结构图;图2a示出了根据本专利技术示例实施例的在多线程计算系统中的数据处理方法的流程图;图2b示出了根据本专利技术示例实施例的在多线程计算系统中的数据处理方法的具体流程;以及图3示出了根据本专利技术示例实施例的在更新加工锁的过程中自选举锁失效的情况下的数据处理方法。具体实施方式以下参考附图描述了本专利技术的示例实施。本专利技术提供了一种多线程计算系统以及多线程计算系统中的数据处理方法,使得能够在解决多应用实例间的资源竞争的同时避免不必要的时间浪费,从而能够确保在处理池切换过程中的数据的完整性和平滑性。应注意,下文将以电子商务环境下进行订单处理作为示例来描述本专利技术的原理。本领域技术人员应清楚,尽管以处理电子商务的订单作为示例示出了本专利技术,然而本专利技术不限于此,本专利技术可以应用于任何需要进行数据处理的系统。电子商务平台往往具有大量订单,在对大量订单进行属性分析时,将每个订单的信息放入链表,从而导致链表的长度过长。为了减少链表的空间占用以及提高分布式处理性能,可以将一个链表分拆成多个小链表,其中每个小链表存储一定数量的订单(例如,一万个订单)。这样的小链表可以被称作处理池。处理池可以实现为链表,此时,注入订单信息就是向此链表中不断的压入订单数据。在选定处理池之后,多个应用实例(例如,tomcat实例)可以并行地向所选处理池添加订单信息。例如,多个应用示例可以向所选处理池添加信息,直到指定的时间期满为止(例如,每个处理池加工5分钟)或处理池内的数据达到阈值数量为止(例如,每个处理池存放了一万个订单)。随后,系统将切换到下一处理池,以便继续执行数据处理。然而,在处理池切换的过程中,存在新处理池竞争的问题,也就是说,应用实例往往都会去获取新处理池。在这种情况下,如果不加控制,则每个应用实例获取的新处理池可能会不一致,从而导致新处理池的不统一。本专利技术提供了一种多线程计算系统以及多线程计算系统中的数据处理方法,能够通过创建分布式三段锁来减少资源竞争并提高数据处理效率。在多处理池多应用实例的环境下,根据本专利技术的数据处理方法能够解决在大数据量的订单合单时资源并发竞争的问题,增加链表的横向扩展能力,减少处理池切换时的竞争风险,并提高订单合单的执行效率。以下参考图1介绍根据本专利技术示例实施例的多线程计算系统。图1示出了根据本专利技术示例实施例的多线程计算系统100,所述系统100可以包括:一个或多个处理装置110,配置为执行多线程操作;以及一个或多个存储装置120,配置为存储数据,并包括多个处理池。所述一个或多个处理装置110配置为:在所述一个或多个存储装置120中创建用于记录线程标识符的自选举锁以及用于记录处理池标识的加工锁和加工辅助锁;从多个处理池中选择一个处理池,将所选处理池的标识写入加工锁,并且经由多个线程在所选处理池中处理数据;当加工锁失效时,由所述多个线程执行自选举操作,其中所述多个线程之一将自己的线程标识符写入自选举锁;所本文档来自技高网...
多线程计算系统及其数据处理方法

【技术保护点】
一种多线程计算系统中的数据处理方法,包括:创建用于记录线程标识符的自选举锁以及用于记录处理池标识的加工锁和加工辅助锁;从多个处理池中选择一个处理池,将所选处理池的标识写入加工锁,并且多个线程在所选处理池中处理数据;当加工锁失效时,所述多个线程执行自选举操作,其中所述多个线程之一将自己的线程标识符写入自选举锁;所述多个线程中的每一个将自己的线程标识符与写入自选举锁的线程标识符进行比较,如果与写入自选举锁的线程标识符不同,则该线程在与加工辅助锁中记录的处理池标识相对应的处理池里处理数据;由线程标识符与写入自选举锁的线程标识符相同的线程用新的处理池标识更新加工锁;以及所述多个线程全部切换到与新的处理池标识相对应的处理池里进行数据处理。

【技术特征摘要】
1.一种多线程计算系统中的数据处理方法,包括:创建用于记录线程标识符的自选举锁以及用于记录处理池标识的加工锁和加工辅助锁;从多个处理池中选择一个处理池,将所选处理池的标识写入加工锁,并且多个线程在所选处理池中处理数据;当加工锁失效时,所述多个线程执行自选举操作,其中所述多个线程之一将自己的线程标识符写入自选举锁;所述多个线程中的每一个将自己的线程标识符与写入自选举锁的线程标识符进行比较,如果与写入自选举锁的线程标识符不同,则该线程在与加工辅助锁中记录的处理池标识相对应的处理池里处理数据;由线程标识符与写入自选举锁的线程标识符相同的线程用新的处理池标识更新加工锁;以及所述多个线程全部切换到与新的处理池标识相对应的处理池里进行数据处理。2.根据权利要求1的数据处理方法,其中当一个线程将自己的线程标识符写入自选举锁时,在自选举锁的有效期内,其他线程无法重写所述线程标识符。3.根据权利要求1所述的数据处理方法,其中每个处理池实现为链表形式。4.根据权利要求1所述的数据处理方法,其中,所述自选举锁具有有效期,如果在没有完成更新加工锁的情况下自选举锁失效,则重新执行自选举操作,直到更新加工锁完成为止。5.根据权利要求1所述的数据处理方法,还包括:用新的处理池标识更新加工辅助锁。6.根据权利要求1所述的数据处理方法,其中所述加工锁具有有效期,其中在所述加工锁的有效期内,所述多个线程在与所述加工锁中记录的处理池标识相对应的处理池里进行数据处理。7.一种多线程计算...

【专利技术属性】
技术研发人员:赵光伟
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1