本发明专利技术公开了一种基于多线程的数据处理方法及装置,用于优化数据库中数据的处理方式。所述方法包括:重启采用多线程处理数据的设备后,根据各线程对应的第一标志位判断重启之前是否存在未处理完数据的线程;当确定重启之前存在未处理完数据的线程时,采用当前线程继续处理所述数据;当确定重启之前不存在未处理完数据的线程时,重新创建预设数量个线程,所述预设数量个线程用于处理重启之后的新数据。该技术方案使得设备重启之后仍能继续处理重启之前尚未被处理完成的数据,从而避免因设备重启而中断数据处理、导致数据处理失败的情况,优化数据处理的整个流程。
【技术实现步骤摘要】
本专利技术涉及数据处理
,尤其涉及一种基于多线程的数据处理方法及装置。
技术介绍
数据库是按照数据结构来组织、存储和管理数据的仓库,数据库对数据的查询、处理速度远远超过普通文件的处理速度。随着移动互联网业务和用户数量的快速增长,传统的入库机制已经很难满足入库管理的需求,因此,采用多线程处理数据的方法应运而生。然而,在多线程处理数据的过程中,有时会出现系统崩溃的情况,一旦系统崩溃,内存中记录的活跃线程数就会为0,在系统重启后无法知晓哪些线程的数据尚未被处理完,从而导致数据处理失败。
技术实现思路
本专利技术实施例提供一种基于多线程的数据处理方法及装置,用于优化数据库中数据的处理方式。一种基于多线程的数据处理方法,包括以下步骤:重启采用多线程处理数据的设备后,根据各线程对应的第一标志位判断重启之前是否存在未处理完数据的线程;当确定重启之前存在未处理完数据的线程时,采用当前线程继续处理所述数据;当确定重启之前不存在未处理完数据的线程时,重新创建预设数量个线程,所述预设数量个线程用于处理重启之后的新数据。本专利技术实施例的一些有益效果可以包括:采用本专利技术实施例提供的技术方案,能够在重启采用多线程处理数据的设备后,根据各线程对应的第一标志位判断重启之前是否存在未处理完数据的线程,并在确定重启之前存在未处理完数据的线程时采用当前线程继续处理数据,使得设备重启之后仍能继续处理重启之前尚未被处理完成的数据,从而避免因设备重启而中断数据处理、导致数据处理失败的情况。并且在确定重启之前不存在未处理完数据的线程时重新创建预设数量个线程,以处理重启之后的新数据,使得设备重启之后的新数据能够被及时处理,从而优化数据处理的整个流程。在一个实施例中,所述根据各线程对应的第一标志位判断重启之前是否存在未处理完数据的线程,包括:当所述线程对应的第一标志位为1时,确定该线程未处理完数据;当所述线程对应的第一标志位为0时,确定该线程已处理完数据。该实施例中,根据第一标志位为1或者为0来确定线程是否处理完数据,使得设备能够根据线程的第一标志位准确确定出重启之前是否存在未处理完数据的线程。在一个实施例中,所述采用当前线程继续处理所述数据,包括:获取内存中记录的活跃线程数,并判断所述活跃线程数是否为零,所述活跃线程数指当前正在处理数据的线程数目;当所述活跃线程数为零时,重新创建线程作为当前线程处理所述数据;当所述活跃线程数不为零时,将当前正在处理数据的线程作为当前线程继续处理所述数据。该实施例中,通过在内存中记录的活跃线程数为零时重新创建线程作为当前线程来处理数据,并在活跃线程数不为零时将当前正在处理数据的线程作为当前线程继续处理数据,从而能够确保有线程继续处理未处理完的数据,优化了数据处理的整个流程。在一个实施例中,所述采用当前线程继续处理所述数据之后,所述方法还包括:当确定所述当前线程已处理完所述数据时,将所述活跃线程数更新为零,并重新创建所述预设数量个线程处理新数据。该实施例中,能够在确定当前线程已处理完数据时,将活跃线程数更新为零,并重新创建预设数量个线程处理新数据,使得重启之后的新数据能够被及时处理。在一个实施例中,所述方法还包括:对指定分区对应的第二标志位进行标记,其中,当所述指定分区对应的其中一个线程处理完所述指定分区的数据时,将所述第二标志位加1;当所述第二标志位等于所述指定分区对应的线程数目时,确定所述指定分区的数据已被处理完成,并对所述指定分区中的数据进行统计;删除所述指定分区的第二标志位。该实施例中,通过对指定分区对应的第二标志位进行标记,并在其中一个线程处理完指定分区的数据时,将该指定分区的第二标志位加1,且在第二标志位等于该指定分区对应的线程数目时,确定该指定分区的数据已被处理完成,对该指定分区中的数据进行统计,使得设备能够通过指定分区对应的第二标志位来确定指定分区中的数据是否处理完,从而使指定分区中已被处理完的数据能够被及时统计,提高了数据统计的效率。此外,本实施例在统计完指定分区中的数据之后删除该指定分区的第二标志位,即设备不再对该指定分区标记第二标志位,从而为设备提供指定分区中的数据已被统计完成的信息。一种基于多线程的数据处理装置,其特征在于,包括:判断模块,用于重启采用多线程处理数据的设备后,根据各线程对应的第一标志位判断重启之前是否存在未处理完数据的线程;处理模块,用于当确定重启之前存在未处理完数据的线程时,采用当前线程继续处理所述数据;创建模块,用于当确定重启之前不存在未处理完数据的线程时,重新创建预设数量个线程,所述预设数量个线程用于处理重启之后的新数据。在一个实施例中,所述判断模块用于:当所述线程对应的第一标志位为1时,确定该线程未处理完数据;当所述线程对应的第一标志位为0时,确定该线程已处理完数据。在一个实施例中,所述处理模块包括:判断单元,用于获取内存中记录的活跃线程数,并判断所述活跃线程数是否为零,所述活跃线程数指当前正在处理数据的线程数目;第一创建单元,用于当所述活跃线程数为零时,重新创建线程作为当前线程处理所述数据;第二处理单元,用于当所述活跃线程数不为零时,将当前正在处理数据的线程作为当前线程继续处理所述数据。在一个实施例中,所述装置还包括:更新模块,用于当确定所述当前线程已处理完所述数据时,将所述活跃线程数更新为零,并重新创建所述预设数量个线程处理新数据。在一个实施例中,所述装置还包括:标记模块,用于对指定分区对应的第二标志位进行标记,其中,当所述指定分区对应的其中一个线程处理完所述指定分区的数据时,将所述第二标志位加1;统计模块,用于当所述第二标志位等于所述指定分区对应的线程数目时,确定所述指定分区的数据已被处理完成,并对所述指定分区中的数据进行统计;删除模块,用于删除所述指定分区的第二标志位。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为本专利技术实施例中一种基于多线程的数据处理方法的流程图;图2为本专利技术实施例中一种基于多线程的数据处理方法中步骤S12的流程图;图3为本专利技术实施例中一种基于多线程的数据处理方法的流程图;图4为本专利技术实施例中一种基于多线程的数据处理装置的框图;图5为本专利技术实施例中一种基于多线程的数据处理装置中处理模块的框图;图6为本专利技术实施例中一种基于多线程的数据处理装置的框图。具体实施方式以下结合附图对本专利技术的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本专利技术,并不用于限定本专利技术。图1为本专利技术实施例中一种基于多线程的数据处理方法的流程图。如图1所示,该方法包括以下步骤S11-S13:步骤S11,重启采用多线程处理数据的设备后,根据各线程对应的第一标志位判断重启之前是否存在未处理完数据的线程。当确定重启之前存在未处理完数据的线程时,执行步骤S12;当确定重启之前不存在未处理完数据的线程时,执行本文档来自技高网...
【技术保护点】
一种基于多线程的数据处理方法,其特征在于,包括:重启采用多线程处理数据的设备后,根据各线程对应的第一标志位判断重启之前是否存在未处理完数据的线程;当确定重启之前存在未处理完数据的线程时,采用当前线程继续处理所述数据;当确定重启之前不存在未处理完数据的线程时,重新创建预设数量个线程,所述预设数量个线程用于处理重启之后的新数据。
【技术特征摘要】
1.一种基于多线程的数据处理方法,其特征在于,包括:重启采用多线程处理数据的设备后,根据各线程对应的第一标志位判断重启之前是否存在未处理完数据的线程;当确定重启之前存在未处理完数据的线程时,采用当前线程继续处理所述数据;当确定重启之前不存在未处理完数据的线程时,重新创建预设数量个线程,所述预设数量个线程用于处理重启之后的新数据。2.根据权利要求1所述的方法,其特征在于,所述根据各线程对应的第一标志位判断重启之前是否存在未处理完数据的线程,包括:当所述线程对应的第一标志位为1时,确定该线程未处理完数据;当所述线程对应的第一标志位为0时,确定该线程已处理完数据。3.根据权利要求1所述的方法,其特征在于,所述采用当前线程继续处理所述数据,包括:获取内存中记录的活跃线程数,并判断所述活跃线程数是否为零,所述活跃线程数指当前正在处理数据的线程数目;当所述活跃线程数为零时,重新创建线程作为当前线程处理所述数据;当所述活跃线程数不为零时,将当前正在处理数据的线程作为当前线程继续处理所述数据。4.根据权利要求3所述的方法,其特征在于,所述采用当前线程继续处理所述数据之后,所述方法还包括:当确定所述当前线程已处理完所述数据时,将所述活跃线程数更新为零,并重新创建所述预设数量个线程处理新数据。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:对指定分区对应的第二标志位进行标记,其中,当所述指定分区对应的其中一个线程处理完所述指定分区的数据时,将所述第二标志位加1;当所述第二标志位等于所述指定分区对应的线程数目时,确定所述指定分区的数据已被处理完成,并对所述指定分区中的数据进行统计;删除所述指定分区的第二标志位。6.一种基于多线...
【专利技术属性】
技术研发人员:江滔,
申请(专利权)人:天脉聚源北京科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。