多线程数据处理方法、多线程底库数据入库方法及装置制造方法及图纸

技术编号:30348133 阅读:25 留言:0更新日期:2021-10-16 16:41
本公开是关于一种多线程数据处理方法、多线程数据处理装置、多线程底库数据入库方法、多线程底库数据入库装置、电子设备和计算机可读存储介质。多线程数据处理方法包括:通过当前线程获取当前待处理数据,确定当前待处理数据所属的当前数据集合;响应于存在当前数据集合对应的当前数据锁且当前数据锁未激活,激活当前数据锁;通过当前线程对当前待处理数据进行数据处理;对当前待处理数据的数据处理完成后,删除当前数据锁;响应于不存在当前数据锁,通过当前线程对当前待处理数据进行数据处理或结束当前线程。通过对数据的划分及数据锁的动态操作,可以在保证数据安全的情况下,有效地提高系统处理能力。地提高系统处理能力。地提高系统处理能力。

【技术实现步骤摘要】
多线程数据处理方法、多线程底库数据入库方法及装置


[0001]本公开涉及数据处理领域,尤其涉及一种多线程数据处理方法、多线程数据处理装置、多线程底库数据入库方法、多线程底库数据入库装置、电子设备和计算机可读存储介质。

技术介绍

[0002]随着数据时代的到来,海量数据处理的需求越来越多,针对海量数据的处理目前都是采用多线程的方式用来提高数据处理的效率。然而,线程是非独立的,同一个进程里线程是数据共享的,当各个线程访问数据资源时会出现竞争状态即数据几乎同步会被多个线程占用,造成数据混乱,即所谓的线程不安全。
[0003]线程不安全在数据传输过程中尤为突出。当待传输数据中存在重复数据、同时希望传输后的数据中不存在重复数据时,可在进行数据传输前判断是否已经传输了多个重复数据中的一个,如果已传输了则不再传输。然而,为提高数据传输效率,数据传输过程中往往需要多个线程并行对数据进行读写操作,当第一线程要传输重复数据中的一个,第二线程正在传输重复数据中的另一个但未传输完成时,会出现第一线程在传输前判断尚未传输多个重复数据中的任何一个、但在第一线程传输完成之后(此时第二线程也传输完成)发现存在2个已传输的重复数据的情况。这种情况下,重复数据造成了线程不安全。

技术实现思路

[0004]为克服相关技术中存在的问题,本公开提供一种多线程数据处理方法、多线程数据处理装置、多线程底库数据入库方法、多线程底库数据入库装置、电子设备和计算机可读存储介质。
[0005]根据本公开实施例的第一方面,提供一种多线程数据处理方法,方法包括:通过当前线程获取当前待处理数据,确定当前待处理数据所属的当前数据集合;其中,造成线程不安全的多个待处理数据属于同一数据集合;响应于存在当前数据集合对应的当前数据锁且当前数据锁未激活,激活当前数据锁,使得仅允许当前线程对当前数据集合中的待处理数据进行数据处理,其中,数据锁与数据集合一一对应;通过当前线程对当前待处理数据进行数据处理;对当前待处理数据的数据处理完成后,删除当前数据锁;响应于不存在当前数据锁,通过当前线程对当前待处理数据进行数据处理或结束当前线程。
[0006]在一实施例中,响应于存在当前数据集合对应的当前数据锁且当前数据锁未激活,激活当前数据锁,包括:响应于存在当前数据集合对应的当前数据锁、当前数据锁未激活且当前数据集合中待处理数据的数量大于1,激活当前数据锁。
[0007]在一实施例中,对当前待处理数据进行数据处理,包括:判断已传输并存储的数据中是否存在当前待处理数据的重复数据,重复数据为与当前待处理数据属于同一数据集合的数据;若不存在重复数据,则传输并存储当前待处理数据。
[0008]在一实施例中,对当前待处理数据进行数据处理,还包括:若存在重复数据,比较
当前待处理数据和重复数据的更新时间和/或图像质量,若当前待处理数据的更新时间晚于重复数据,和/或当前待处理数据的图像质量优于重复数据,则传输并存储当前待处理数据,其中,存储当前待处理数据包括用当前待处理数据替换重复数据。
[0009]在一实施例中,在通过当前线程获取当前待处理数据之前,方法还包括:读取待处理数据,获取待处理数据的结构化属性信息;根据结构化属性信息,确定待处理数据所属的数据集合,由此得到多个数据集合;为多个数据集合生成与数据集合一一对应的数据锁,存储数据集合和数据锁的对应关系。
[0010]在一实施例中,根据结构化属性信息,确定待处理数据所属的数据集合,包括:根据结构化属性信息中的索引属性信息,确定待处理数据的分组索引信息;其中,索引属性信息为结构化属性信息中的至少一种;将具有相同分组索引信息的待处理数据归为一个数据集合;存储数据集合和数据锁的对应关系包括:存储数据集合对应的分组索引信息和数据锁的对应关系。
[0011]在一实施例中,通过当前线程获取当前待处理数据,确定当前待处理数据所属的当前数据集合,包括:获取当前待处理数据的当前索引属性信息;根据当前索引属性信息得到当前待处理数据的当前分组索引信息;方法还包括:根据当前分组索引信息,检测是否存在与当前分组索引信息对应的数据锁;其中,当前索引属性信息为当前待处理数据的结构化属性信息中的至少一种,属于同一数据集合的待处理数据具有相同的分组索引信息。
[0012]在一实施例中,删除当前数据锁,包括:释放当前数据锁并删除当前数据锁与当前数据集合的对应关系。
[0013]根据本公开实施例的第二方面,提供一种多线程数据处理装置,装置包括:数据获取单元,用于通过当前线程获取当前待处理数据,确定当前待处理数据所属的当前数据集合;其中,造成线程不安全的待处理数据属于同一数据集合;数据操作单元,用于响应于存在当前数据集合对应的当前数据锁且当前数据锁未激活,激活当前数据锁,使得仅允许当前线程对当前数据集合中的待处理数据进行数据处理,其中,数据锁与数据集合一一对应;通过当前线程对当前待处理数据进行数据处理;对当前待处理数据的数据处理完成后,删除当前数据锁;数据操作单元,还用于响应于不存在当前数据锁,通过当前线程对当前待处理数据进行数据处理或结束当前线程。
[0014]在一实施例中,数据操作单元还包括:响应于存在当前数据集合对应的当前数据锁、当前数据锁未激活且当前数据集合中待处理数据的数量大于1,激活当前数据锁。
[0015]在一实施例中,对当前待处理数据进行数据处理,包括:判断已传输并存储的数据中是否存在当前待处理数据的重复数据,重复数据为与当前待处理数据属于同一数据集合的数据;若不存在重复数据,则传输并存储当前待处理数据。
[0016]在一实施例中,对当前待处理数据进行数据处理,还包括:若存在重复数据,比较当前待处理数据和重复数据的更新时间和/或图像质量,若当前待处理数据的更新时间晚于重复数据,和/或当前待处理数据的图像质量优于重复数据,则传输并存储当前待处理数据,其中,存储当前待处理数据包括用当前待处理数据替换重复数据。
[0017]在一实施例中,装置还包括:批量读取单元,用于读取待处理数据,获取待处理数据的结构化属性信息;数据划分单元,用于根据结构化属性信息,确定待处理数据所属的数据集合,由此得到多个数据集合;数据锁生成单元,用于为多个数据集合生成与数据集合一
一对应的数据锁,存储数据集合和数据锁的对应关系。
[0018]在一实施例中,数据划分单元还包括:根据结构化属性信息中的索引属性信息,确定待处理数据的分组索引信息;其中,索引属性信息为结构化属性信息中的至少一种;将具有相同分组索引信息的待处理数据归为一个数据集合;存储数据集合和数据锁的对应关系包括:存储数据集合对应的分组索引信息和数据锁的对应关系。
[0019]在一实施例中,通过当前线程获取当前待处理数据,确定当前待处理数据所属的当前数据集合,包括:获取当前待处理数据的当前索引属性信息;根据当前索引属性信息得到当前待处理数据的当前分组索引信息;
[0020]装置还包括:根据当前分组索引信息,检测是否存在与当前分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多线程数据处理方法,其特征在于,所述方法包括:通过当前线程获取当前待处理数据,确定所述当前待处理数据所属的当前数据集合;其中,造成线程不安全的多个待处理数据属于同一数据集合;响应于存在所述当前数据集合对应的当前数据锁且所述当前数据锁未激活,激活所述当前数据锁,使得仅允许所述当前线程对所述当前数据集合中的待处理数据进行数据处理,其中,数据锁与数据集合一一对应;通过所述当前线程对所述当前待处理数据进行数据处理;对所述当前待处理数据的数据处理完成后,删除所述当前数据锁;响应于不存在所述当前数据锁,通过所述当前线程对所述当前待处理数据进行数据处理或结束所述当前线程。2.根据权利要求1所述的多线程数据处理方法,其特征在于,响应于存在所述当前数据集合对应的当前数据锁且所述当前数据锁未激活,激活所述当前数据锁,包括:响应于存在所述当前数据集合对应的当前数据锁、所述当前数据锁未激活且所述当前数据集合中待处理数据的数量大于1,激活所述当前数据锁。3.根据权利要求1或2所述的多线程数据处理方法,其特征在于,所述对所述当前待处理数据进行数据处理,包括:判断已传输并存储的数据中是否存在所述当前待处理数据的重复数据,所述重复数据为与所述当前待处理数据属于同一数据集合的数据;若不存在所述重复数据,则传输并存储所述当前待处理数据。4.根据权利要求3所述的多线程数据处理方法,其特征在于,所述对所述当前待处理数据进行数据处理,还包括:若存在所述重复数据,比较所述当前待处理数据和所述重复数据的更新时间和/或图像质量,若所述当前待处理数据的更新时间晚于所述重复数据,和/或所述当前待处理数据的图像质量优于所述重复数据,则传输并存储所述当前待处理数据,其中,存储所述当前待处理数据包括用所述当前待处理数据替换所述重复数据。5.根据权利要求1

4任一项所述的多线程数据处理方法,其特征在于,在所述通过当前线程获取当前待处理数据之前,所述方法还包括:读取待处理数据,获取所述待处理数据的结构化属性信息;根据所述结构化属性信息,确定所述待处理数据所属的数据集合,由此得到多个数据集合;为所述多个数据集合生成与数据集合一一对应的数据锁,存储数据集合和数据锁的对应关系。6.根据权利要求5所述的多线程数据处理方法,其特征在于,所述根据所述结构化属性信息,确定所述待处理数据所属的数据集合,包括:根据所述结构化属性信息中的索引属性信息,确定所述待处理数据的分组索引信息;其中,所述索引属性信息为所述结构化属性信息中的至少一种;将具有相同分组索引信息的待处理数据归为一个数据集合;所述存储数据集合和数据锁的对应关系包括:存储数据集合对应的分组索引信息和数据锁的对应关系。
7.根据权利要求1

6任一项所述的多线程数据处理方法,其特征在于,通过当前线程获取当前待处理数据,确定所述当前待处理数据所属的当前数据集合,包括:获取所述当前待处理数据的当前索引属性信息;根据所述当前索引属性信息得到所述当前待处理数据的当前分组索引信息;所述方法还包括:根据所述当前分组索引信息,检测是否存在与所述当前分组索引信息对应的数据锁...

【专利技术属性】
技术研发人员:王金高黄安武冯曦甘霖
申请(专利权)人:北京迈格威科技有限公司
类型:发明
国别省市:

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

1