多线程数据处理方法、装置、终端及采集系统

文档序号:7330 发布日期:2021-09-17 浏览:36次 英文

多线程数据处理方法、装置、终端及采集系统

技术领域

本发明涉及多线程

技术领域

,尤其涉及一种多线程数据处理方法、装置、终端及采集系统。

背景技术

多线程是指从软件或者硬件上实现多个线程并发执行的技术。然而,在采用多线程并行处理多个串行上传的数据时,可能会出现虽然处理完结束符,但是可能存在有的子线程未处理完数据,就退出主线程情况。该情况会导致数据处理不完整,影响后续的数据分析。

发明内容

本发明实施例提供了一种多线程数据处理方法、装置、终端及采集系统,以解决在采用多线程处理多个任务时,可能会导致数据处理不完整的问题。

第一方面,本发明实施例提供了一种多线程数据处理方法,应用于多线程并行状态,包括:

接收串行上传的多个数据集和结束符;结束符用于表明多个数据集已上传完成;

在接收到结束符后,生成包含多个并行的子线程的主线程;每个数据集对应一个子线程,结束符对应一个子线程

根据多个数据集生成参考数据标识集;参考数据标识集包括每个数据集的数据标识;

生成目标数据标识集,目标数据标识集包括已被对应子线程处理完成的数据集的数据标识;

在检测到目标数据标识集和参考数据标识集对应,且检测到结束符已被处理完成时,退出主线程。

在一种可能的实现方式中,目标数据标识集和参考数据标识集对应,包括:

目标数据标识集中的数据标识与参考数据标识集中的数据标识一一对应。

在一种可能实现的方式中,该方法还包括:

在检测到目标数据标识集和参考数据标识集不对应,和/或检测到结束符未被处理完成时,不退出主线程。

在一种可能的实现方式中,在生成包含多个并行的子线程的主线程后,该方法还包括:

根据多个并行的子线程生成参考线程标识集;参考线程标识集包括每个子线程的线程标识;

生成目标线程标识集,目标线程标识集包括已处理子线程的线程标识;

在检测到目标线程标识集和参考线程标识集对应,且检测到结束符已被处理完成时,退出主线程。

在一种可能的实现方式中,目标线程标识集和参考线程标识集对应,包括:

目标线程标识集中的线程标识与参考线程标识集中的线程标识一一对应。

在一种可能的实现方式中,该方法还包括:

在检测到目标线程标识集和参考线程标识集不对应,和/或未检测到结束符被处理完成时,不退出主线程。

第二方面,本发明实施例提供了一种多线程数据处理装置,包括:

接收模块,用于接收串行上传的多个数据集和结束符;结束符用于表明多个数据集已上传完成;

第一处理模块,用于在接收到结束符后,生成包含多个并行的子线程的主线程;每个数据集对应一个子线程,结束符对应一个子线程;

第二处理模块,用于根据多个数据集生成参考数据标识集;参考数据标识集包括每个数据集的数据标识;

第三处理模块,用于生成目标数据标识集,目标数据标识集包括已被对应子线程处理完成的数据集的数据标识;

第一判断模块,用于在检测到目标数据标识集和参考数据标识集对应,且检测到结束符已被处理完成时,退出主线程。

第三方面,本发明实施例提供了一种终端,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上第一方面或第一方面的任一种可能的实现方式多线程数据处理方法的步骤。

第四方面,本发明实施例提供了一种采集系统,包括采集器和如上第三方面的终端;采集器与主线程对应,用于串行上传多个数据集和结束符;采集器均受控于终端。

第五方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上第一方面或第一方面的任一种可能的实现方式多线程数据处理方法的步骤。

本发明实施例提供一种多线程数据处理方法、装置、终端及采集系统,通过接收串行上传的多个数据集和结束符;结束符用于表明多个数据集已上传完成;在接收到结束符后,生成包含多个并行的子线程的主线程;每个数据集对应一个子线程,结束符对应一个子线程根据多个数据集生成参考数据标识集;参考数据标识集包括每个数据集的数据标识;生成目标数据标识集,目标数据标识集包括已被对应子线程处理完成的数据集的数据标识;在检测到目标数据标识集和参考数据标识集对应,且检测到结束符已被处理完成时,退出主线程。将目标数据标识集和参考数据标识集对应比对,有利于主线程判断各个子线程的执行状态,在所有数据集均处理完成后再退出主线程,可以极大提高多线程处理数据的可靠性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的多线程数据处理方法的应用场景图;

图2是本发明实施例提供的多线程数据处理方法的实现流程图;

图3是本发明实施例提供的多线程数据处理装置的结构示意图;

图4是本发明实施例提供的终端的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图通过具体实施例来进行说明。

参见图1,图1为本发明实施例提供的多线程数据处理方法的应用场景图。在光伏技术领域,光伏板的故障可以根据它的伏安曲线特性判断,而往往光伏电站有大量的光伏极板,采集整个电站极板的伏安曲线数据非常耗时。现场实施中一般采用层级上送的方式,先由逆变器负责采集光伏极板伏安数据,然后再传输到采集器,其中每个采集器负责多个逆变器,最后采集器把逆变器的数据上报给诊断系统。

示例性的,如图1所示,采集器m1采集逆变器a1~ax的数据,采集器m2采集逆变器b1~by的数据,....,采集器mn采集逆变器c1~cz的数据,各个采集器将采集的数据均上传至诊断系统。为了保证处理速度,针对每个采集器,诊断系统采用多线程方式的处理数据,可以同时处理采集器串行上传的数据。例如将一个逆变器数据作为一个采集任务,则每个采集器对应一个主线程,每个子线程对应处理一个逆变器的数据。

采集器以串行的方式采集逆变器的数据,如:(线程1,线程2,线程3,线程4,线程5,结束符),在采集器采集结束会产生结束符,并将包括结束符在内的所有数据串行上传至诊断系统。诊断系统需要将采集器采集数据进行转换处理,便于后续使用。诊断系统处理每个采集器的所有数据的过程为多线程并行运行处理,若此时处理的为(线程1,线程2,线程3,结束符),则因为接受到了采集器的结束符,诊断系统则会直接结束所有进程,而此时线程4和线程5均未被处理,会造成采集数据的不完整,影响后续数据的使用。针对可能发生的上述情况,本发明实施例提供一种多线程数据处理方法。

参见图2,其示出了本发明实施例提供的多线程数据处理方法的实现流程图,应用于多线程并行状态,详述如下:

S101,接收串行上传的多个数据集和结束符;结束符用于表明多个数据集已上传完成;

可选的,每个数据集可以包括多个数据。采集器可以将采集的多个数据集串行上传。结束符可以包括上传的数据集的数量以及用于表示串行上传完成的完成标识。如每上传完一个数据集,结束符中的记录数量加一。

示例性的,参见图1,采集器m1采集逆变器a1~ax的光伏数据,每个逆变器的光伏数据即为对应的数据集,采集器将每个逆变器的数据集串行上传。

S102,在接收到结束符后,生成包含多个并行的子线程的主线程;每个数据集对应一个子线程,结束符对应一个子线程;

可选的,接收到结束符代表采集器串行上传过程完成,可以根据结束符中的数量信息生成主线程,主线程包括多个子线程。本发明实施例根据串行上传的多个数据集和结束符实时生成主线程,可以在保证数据处理可靠性的情况下,减少资源的消耗。

S103,根据多个数据集生成参考数据标识集;参考数据标识集包括每个数据集的数据标识;

可选的,数据标识可以为字母、数字、序号或者其他用于表示该数据集身份的字符标识。

S104,生成目标数据标识集,目标数据标识集包括已被对应子线程处理完成的数据集的数据标识;

可选的,创建主线程后,子线程会处理对应的数据集,处理可以为数据转换或者数据分析等。目标数据标识集表示子线程处理完成数据集生成的标识集。

S105,在检测到目标数据标识集和参考数据标识集对应,且检测到结束符已被处理完成时,退出主线程。

可选的,在主线程创建后,各个子线程会处理对应的数据集。参考数据标识集储存有所有数据集的标识信息,当目标数据标识集与参考数据标识集对应,且检测到结束符已经被处理完成时,表示所有子线均处理完对应的数据集,退出主线程,保证数据处理的可靠性。

本发明实施例通过将多个子线程处理的数据集对应的目标数据标识集以及与参考数据标识集作比对,有利于主线程判断各个子线程的执行状态,在所有子线程均任务处理完成后再退出主线程,可以极大提高多线程处理任务的可靠性。

在本发明的一些实施例中,目标数据标识集和参考数据标识集对应,包括:

目标数据标识集中的数据标识与参考数据标识集中的数据标识一一对应。

可选的,目标数据标识集表示已被处理的数据集的数据标识形成的集合。参考数据标识集表示所有串行上传的数据集的数据标识形成的集合。当目标数据标识集中的数据标识与参考数据标识集中的数据标识一一对应,表明所有串行上传的数据集均已被处理完成,数据未发生遗漏。

可选的,数据标识可以为用以表明该数据集身份的标识,可以是数字、字母、汉字等字符单独或者组合形成的字符标识。

在本发明的一些实施例中,该方法还包括:

在检测到目标数据标识集和参考数据标识集不对应,和/或未检测到结束符被处理完成时,不退出主线程。

可选的,若目标数据标识集和参考数据标识集不对应,和/或未检测到技术服务被处理完成,则表明有的数据集未处理完成,此时不退出主线程。

可选的,对结束符的处理过程可以与处理数据集的过程相同,也可以不同。如,处理结束符的过程可以为:在子线程接收到结束符后开始计时,当计时的时长超过预设时长时,表明该结束符处理完成。

在本发明的一些实施例中,该方法还包括:

在生成包含多个并行的子线程的主线程后,方法还包括:

根据多个并行的子线程生成参考线程标识集;参考线程标识集包括每个子线程的线程标识;

生成目标线程标识集,目标线程标识集包括已处理子线程的线程标识;

在检测到目标线程标识集和参考线程标识集对应,且检测到结束符已被处理完成时,退出主线程。

可选的,参考线程标识集表示生成的子线程的线程标识形成的集合。目标线程标识集表示已处理完数据集的子线程的线程标识形成的集合。

可选的,线程标识可以为用以表明该子线程身份的标识,可以是数字、字母、汉字等字符单独或者组合形成的字符标识。

现有主线程在检测到线程结束符后,会直接退出主线程,即不管此时子线程是否处理完数据集,都会直接结束。而一旦在检测到线程结束符时,若存在部分子线程还未处理完数据集,直接退出主线程,则会影响多线程处理数据的可靠性,尤其是对于数据传输,直接影响后续根据数据对相关状况分析的可靠性。

在本发明的一些实施例中,目标线程标识集和参考线程标识集对应,包括:

目标线程标识集中的线程标识与参考线程标识集中的线程标识一一对应。

在本发明的一些实施例中,该方法还包括:

在检测到目标线程标识集和参考线程标识集不对应,和/或检测到结束符未被处理完成时,不退出主线程。

可选的,结束符在被子线程处理完成后,会一直存在,只有当同时满足两个条件时,才会退出主线程。

本发明实施例通过在子线程任务处理完成时,生成目标线程标识集,将目标线程标识集与参考线程标识集作比对,在对应,且检测到线程结束符时,退出主线程,结束所有子线程。保证多线程数据处理的安全性,提高后续数据分析的可靠性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。

图3示出了本发明实施例提供的多线程数据处理装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:

如图3所示,多线程数据处理装置10,可以包括:

接收模块100,用于接收串行上传的多个数据集和结束符;结束符用于表明多个数据集已上传完成;

第一处理模块110,用于在接收到结束符后,生成包含多个并行的子线程的主线程;每个数据集对应一个子线程,结束符对应一个子线程;

第二处理模块120,用于根据多个数据集生成参考数据标识集;参考数据标识集包括每个数据集的数据标识;

第三处理模块130,用于生成目标数据标识集,目标数据标识集包括已被对应子线程处理完成的数据集的数据标识;

第一判断模块140,用于在检测到目标数据标识集和参考数据标识集对应,且检测到结束符已被处理完成时,退出主线程。

在本发明的一些实施例中,第一判断模块140可以包括:

数据对应单元,用于目标数据标识集中的数据标识与参考数据标识集中的数据标识一一对应。

在本发明的一些实施例中,多线程数据处理装置10,还可以包括:

第二判断模块,用于在检测到目标数据标识集和参考数据标识集不对应,和/或未检测到结束符被处理完成时,不退出主线程。

在本发明的一些实施例中,多线程数据处理装置10还可以包括:

第四处理模块,用于根据多个并行的子线程生成参考线程标识集;参考线程标识集包括每个子线程的线程标识;

第五处理模块,用于生成目标线程标识集,目标线程标识集包括已处理子线程的线程标识;

第三判断模块,用于在检测到目标线程标识集和参考线程标识集对应,且检测到结束符已被处理完成时,退出主线程。

在本发明的一些实施例中,第一判断模块120可以包括:

线程对应单元,用于目标线程标识集中的线程标识与参考线程标识集中的线程标识一一对应。

在本发明的一些实施例中,多线程数据处理装置10还可以包括:

第四判断模块,用于在检测到目标线程标识集和参考线程标识集不对应,和/或检测到结束符未被处理完成时,不退出主线程。

在本发明的一些实施例中,线程结束符为在主线程创建后,经过预设时长后生成的结束符。

图4是本发明实施例提供的终端的示意图。如图4所示,该实施例的终端20包括:处理器200、存储器210以及存储在存储器210中并可在处理器200上运行的计算机程序220。处理器200执行计算机程序220时实现上述各个多线程数据处理方法实施例中的步骤,例如图2所示的S101至S105。或者,处理器200执行计算机程序220时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块/单元100至140的功能。

示例性的,计算机程序220可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器210中,并由处理器200执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序220在终端20中的执行过程。例如,计算机程序220可以被分割成图3所示的模块/单元100至140。

终端20可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端20可包括,但不仅限于,处理器200、存储器210。本领域技术人员可以理解,图4仅仅是终端20的示例,并不构成对终端20的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端还可以包括输入输出设备、网络接入设备、总线等。

所称处理器200可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器210可以是终端20的内部存储单元,例如终端20的硬盘或内存。存储器210也可以是终端20的外部存储设备,例如终端20上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器210还可以既包括终端20的内部存储单元也包括外部存储设备。存储器210用于存储计算机程序以及终端所需的其他程序和数据。存储器210还可以用于暂时地存储已经输出或者将要输出的数据。

在本发明的一些实施例中,一种采集系统,包括采集器和如上的终端;采集器与主线程对应,用于串行上传多个数据集和结束符;采集器受控于终端。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其他的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个多线程数据处理方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:任务执行方法、装置、设备以及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!