线程管理方法、存储介质及电子设备与流程

专利2022-06-30  69


本申请涉及线程技术领域,特别地涉及一种线程管理方法、存储介质及电子设备。



背景技术:

目前很多系统或电子设备都有处理数据的功能,将上游系统产生的原始数据进行统一的处理、清洗后得到真正有价值的数据并进行展示,所以一个系统的响应时间与处理数据的效率成正比。

现有技术中,公开了基于线程池基础上调整线程个数的方案,但是现有技术中,如果上游系统在某个时间段内产生的数据量经常存在骤升和骤降的情况,或产生的数据量断断续续的情况,会造成在当前系统或电子设备进行数据处理时,运行不平稳的情况。



技术实现要素:

针对上述问题,本申请提供一种线程管理方法、存储介质及电子设备,解决了现有技术中存在的当接收到的数据量不稳定时造成的电子设备运行不平稳的问题

第一方面,本申请提供了一种线程管理方法,所述方法包括:

获取当前周期接收到的待处理数据的数据量,及与该当前周期之前相邻的多个周期分别接收到的待处理数据的数据量;

根据所述多个周期中每个周期接收到的待处理数据的数据量和所述当前周期接收到的待处理数据的数据量;

在需要销毁线程时,获取需要销毁的线程数量,并在所述当前周期内销毁所述需要销毁的线程数量的线程。

可选的,在上述线程管理方法,根据所述多个周期中每个周期接收到的待处理数据的数据量和所述当前周期接收到的待处理数据的数据量,包括:

计算所述多个周期中的首个周期接收到的待处理数据的数据量与所述多个周期中除所述首个周期外的每个其他周期和所述当前周期分别接收到的待处理数据的数据量的比值;

根据各所述比值和预设比值判断是否需要销毁线程,其中,在各所述比值均大于所述预设比值时,需要销毁线程。

可选的,在上述线程管理方法,根据所述多个周期中每个周期接收到的待处理数据的数据量和所述当前周期接收到的待处理数据的数据量,包括:

计算所述多个周期中的首个周期接收到的待处理数据的数据量与所述多个周期中除所述首个周期外的每个其他周期和所述当前周期分别接收到的待处理数据的数据量的数据量的差值;

根据各所述差值和预设差值判断是否需要销毁线程,其中,在各所述差值均大于所述预设差值时需要销毁线程。

可选的,在上述线程管理方法,所述需要销毁的线程的数量根据以下方式获得:

将每个所述其他周期和所述当前周期分别接收到的待处理数据的数据量分别与每个线程的最大处理量相除,得到每个其他周期内所需的线程数量及当前周期内所需的线程数量;

将所述首个周期对应的线程数量与多个其他周期内所需的线程数量及当前周期内所需的线程数量中的最大所需的线程数量的差值,作为需要销毁的线程数量。

可选的,在上述线程管理方法,在所述当前周期内销毁所述需要销毁的线程数量的线程,包括:

在所述当前周期内按照各所述线程处理完成对应的待处理数据的时间顺序销毁所述需要销毁的线程数量的线程。

可选的,在上述线程管理方法,所述方法还包括:

在不需要销毁线程时,获取与所述当前周期相邻的上一周期的线程数量;

根据当前周期内接收到的待处理数据得到该当前周期内的需求线程的数量;

在所述需求线程的数量大于所述上一周期的线程数量时,获得待创建线程的数量,并创建该待创建线程的数量对应的线程;

将该当前周期内接收到的待处理数据分配至该当前周期内的所有线程。

可选的,在上述线程管理方法,获得待创建线程的数量,包括:

将所述需求线程的数量与所述上一周期的线程数量的差值作为待创建线程的数量。

可选的,在上述线程管理方法,将该当前周期内接收到的待处理数据分配至该当前周期内的所有线程,包括:

根据各所述线程中未处理的待处理数据的数量和接收到的待处理数据的数量得到待处理数据总量;

根据所述待处理数据总量和各所述线程中未处理的待处理数据的数量,将所述接收到的待处理数据分配至该当前周期内的所有线程。

第二方面,本申请提供一种存储介质,该存储介质存储有计算机程序,所述计算机程序被一个或多个处理器执行时实现上述的线程管理方法。

第三方面,本申请提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,该计算机程序被所述处理器执行时,执行上述的线程管理方法。

与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:

本申请提供的一种线程管理方法、存储介质及电子设备,方法包括,获取当前周期接收到的待处理数据的数据量,及与该当前周期之前相邻的多个周期分别接收到的待处理数据的数据量,根据所述多个周期中每个周期接收到的待处理数据的数据量和所述当前周期接收到的待处理数据的数据量,在需要销毁线程时,获取需要销毁的线程数量,并在所述当前周期内销毁所述需要销毁的线程数量的线程,以实现在多个周期内,持续保持较多的线程数量,以避免相邻多个周期内接收到的待处理数据由于存在骤增和骤减,或多个周期内接收到的待处理数据断续的情况造成需要在多个周期内需要不断新建和销毁线程存在的数据处理不稳定,且电子设备运行不平稳的问题。

附图说明

在下文中将基于实施例并参考附图来对本申请进行更详细的描述。

图1为本申请实施例一提供的一种线程管理方法的流程示意图。

图2为本申请实施例一提供的一种线程管理方法的另一流程示意图。

在附图中,相同的部件使用相同的附图标记,附图并未按照实际的比例绘制。

具体实施方式

以下将结合附图及实施例来详细说明本申请的实施方式,借此对本申请如何应用技术手段来解决技术问题,并达到相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本申请的保护范围之内。

实施例一

请参阅图1,本申请提供一种可应用于手机、电脑或平板电脑等电子设备的线程管理方法,所述应用管理方法应用于所述电子设备时执行步骤s110-s130。

步骤s110:获取当前周期接收到的待处理数据的数据量,及与该当前周期之前相邻的多个周期分别接收到的待处理数据的数据量。

其中,上述的多个周期为连续多个周期,当前周期之前相邻的多个周期的数量可以是两个、三个或五个,在此不做具体限定,根据实际需求进行设置即可。

步骤s120:根据所述多个周期中每个周期接收到的待处理数据的数据量和所述当前周期接收到的待处理数据的数据量。

其中,上述步骤s120可以是,根据所述多个周期中的首个周期接收到的待处理数据的数据量与所述多个周期中除所述首个周期外的每个其他周期接收到的待处理数据的数据量和当前周期接收到的待处理数据的数据量的比值或差值判断是否需要销毁线程,在此不作具体限定,根据需求进行设置即可。

可选的,在本实施例中,上述步骤可以是,计算所述多个周期中的首个周期接收到的待处理数据的数据量与所述多个周期中除所述首个周期外的每个其他周期和所述当前周期分别接收到的待处理数据的数据量的比值,根据各所述比值和预设比值判断是否需要销毁线程,其中,在各所述比值均大于所述预设比值时,判定为需要销毁线程,在存在比值小于所述预设比值时,则不需要创建线程。

可以理解,在需要销毁线程时,多个周期中的首个周期接收到的待处理数据量应当大于多个周期中除首个周期外的各个其他周期和当前周期分别接收到的待处理数据的数据量,因此,上述的比值应当为大于1的常数,例如1.1或1.12等,根据实际需求进行设置即可,在此不做具体限定。

可选的,在本实施例中,上述步骤s120还可以是:计算所述多个周期中的首个周期接收到的待处理数据的数据量与所述多个周期中除所述首个周期外的每个其他周期和所述当前周期分别接收到的待处理数据的数据量的数据量的差值,根据各所述差值和预设差值判断是否需要销毁线程,其中,在各所述差值均大于所述预设差值时需要销毁线程,在存在差值不大于所述预设差值时,不需要销毁线程。

可以理解,需要销毁线程时,多个周期中的首个周期接收到的待处理数据量应当大于多个周期中除首个周期外的各个其他周期分别及当前周期接收到的待处理数据量,因此,相应的,所述预设差值可以是但不限20、50、100等数值,在此不做具体限定,根据实际需求进行设置即可。

步骤s130:在需要销毁线程时,获取需要销毁的线程数量,并在所述当前周期内销毁所述需要销毁的线程数量的线程。

其中,获取需要销毁的线程数量的方式可以是,从预设数据库中获取需要销毁的线程数量,也可以是根据各周期对应接收的待处理数据所需的线程数量以及首个周期对应的线程数量得到需要销毁的线程数量,在此不做具体限定,根据实际需求进行设置即可。

可选的,本实施例中,获取需要销毁的线程数量的步骤包括:

将每个所述其他周期和所述当前周期分别接收到的待处理数据的数据量分别与每个线程的最大处理量相除,得到每个其他周期内所需的线程数量及当前周期内所需的线程数量;将所述首个周期对应的线程数量与多个其他周期分别所需的线程数量中的最大所需的线程数量的差值,作为需要销毁的线程数量。

在所述当前周期内销毁所述需要销毁的线程数量的方式可以是,从当前周期对应的多个线程中随机销毁需要销毁的线程数量的线程,也可以是按照完成处理对应得待处理数据的顺序销毁所述需要销毁的线程数量的线程,根据实际需求进行设置即可。

为保障在提高销毁线程的效率的同时保障处理待处理数据的效率,在本实施例中,可选的,在所述当前周期内销毁所述需要销毁的线程数量的线程,包括:在所述当前周期内按照各所述线程处理完成对应的待处理数据的时间顺序销毁所述需要销毁的线程数量的线程。

需要说明的是,在本实施例中,在当前周期内还应当将该当前周期内接收到的待处理数据分配至各线程进行处理,可以理解,上述分配的时刻即可以是在销毁线程之前,进行分配,以在分配完成之后再行销毁所述需要销毁的线程数量的线程,上述分配的时刻即可以是在销毁线程完成之后,以在完成销毁后就将各所述待处理数据分别分配至销毁线程之后的多个线程中进行处理,根据实际需求进行设置即可,在此不作一一赘述。

通过上述设置,以实现在多个周期内,持续保持较多的线程数量,以避免相邻多个周期内接收到的待处理数据由于存在骤增和骤减,或多个周期内接收到的待处理数据断续的情况造成需要在多个周期内需要不断新建和销毁线程存在的数据处理不稳定,且电子设备运行不平稳的问题。进一步,通过在连续多个周期内接收到的待处理数据均较少时,认为待处理数据量较少且各周期内接收到的待处理数据数量稳定,从而减少线程数量,以节约内存资源,从而保障电子设备高效、稳定的运行。

请结合参阅图2,为便于采用线程在当前周期内对待处理数据进行处理时更高效,在本实施例中,所述方法还包括:

步骤s210:在不需要销毁线程时,获取与所述当前周期相邻的上一周期的线程数量。

步骤s220:根据当前周期内接收到的待处理数据得到该当前周期内的需求线程的数量。

其中,上述步骤s220具体可以是,将所述当前周期内接收到的待处理数据与所述每个线程的最大处理量相除得到该当前周期内的需求线程的数量。

步骤s230:在所述需求线程的数量大于所述上一周期的线程数量时,获得待创建线程的数量,并创建该待创建线程的数量对应的线程。

其中,获得待创建线程的数量的方式可以是,与所述电子设备关联的数据库或所述电子设备的存储器中预存有待创建的线程数量,并获取预存的待创建线程数量;也可以是将所述需求线程的数量和上一周期的线程数量的差值作为待创建线程的数量。

在本实施例中,上述步骤s230包括:将所述需求线程的数量与所述上一周期的线程数量的差值作为待创建线程的数量。

步骤s240:将该当前周期内接收到的待处理数据分配至该当前周期内的所有线程。

其中,上述分配的方式可以是将当前周期内接收到的待处理数据平均分配至该当前周期内的所有线程,也可以是依据根据各所述线程中未处理的待处理数据的数量和接收到的待处理数据进行分配。在此不做具体限定,根据实际需求进行设置即可

可选的,为进一步提高当前周期内对待处理数据的处理效率,在本实施例中,上述步骤s240包括:

根据各所述线程中未处理的待处理数据的数量和接收到的待处理数据的数量得到待处理数据总量。

根据所述待处理数据总量和各所述线程中未处理的待处理数据的数量,将所述接收到的待处理数据分配至该当前周期内的所有线程。

可以理解,在当前时刻为当前周期的结束时刻时,将与该当前周期相邻的下一周期作为新的当前周期,并重复执行上述步骤s110-s130以及步骤s210-s240,以有效保障电子设备处理待处理数据时的高效性及稳定性。

在本实施例中,以每个周期对应的时长为m分钟,分别获取当前周期t及当前周期相邻的前n个周期接收到的待处理数据的数据量,并根据当前周期及该当前周期相邻的前n个周期的待处理数据的数据量确定数据是否有明显波动,从而确定是否需要创建或销毁线程,可以根据单个线程最大处理量x,各个周期数据量为y进行计算得到,具体的需要创建线程时,通过(当前周期接收到的待处理数据量y-当前线程数s*最大处理量x)/最大处理量x计算得到需要创建的线程数量z,在需要销毁线程时,将每个所述其他周期和所述当前周期分别接收到的待处理数据的数据量分别与每个线程的最大处理量相除,得到每个其他周期内所需的线程数量及当前周期内所需的线程数量,并将所述首个周期对应的线程数量与多个其他周期内所需的线程数量及当前周期内所需的线程数量中的最大所需的线程数量的差值,作为需要销毁的线程数量。以在所述当前周期内按照各所述线程处理完成对应的待处理数据的时间顺序销毁所述需要销毁的线程数量的线程。

实施例二

本实施例还提供一种存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时可以实现如下线程管理方法的方法步骤:

获取当前周期接收到的待处理数据的数据量,及与该当前周期之前相邻的多个周期分别接收到的待处理数据的数据量;

根据所述多个周期中每个周期接收到的待处理数据的数据量和所述当前周期接收到的待处理数据的数据量;

在需要销毁线程时,获取需要销毁的线程数量,并在所述当前周期内销毁所述需要销毁的线程数量的线程。

上述方法步骤的具体实施例过程可参见实施例一,本实施例在此不再重复赘述。

实施例三

本申请实施例提供了一种电子设备,该电子设备可以是手机、电脑或平板电脑等,包括存储器和处理器,所述存储器上存储有计算器程序,该计算机程序被处理器执行时实现如实施例一中所述的线程管理方法。可以理解,电子设备还可以包括,多媒体组件,输入/输出(i/o)接口,以及通信组件。

其中,处理器用于执行如实施例一中的线程管理方法中的全部或部分步骤。存储器用于存储各种类型的数据,这些数据例如可以包括电子设备中的任何应用程序或方法的指令,以及应用程序相关的数据。

所述处理器可以是专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例一中的线程管理方法。

所述存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。

多媒体组件可以包括屏幕和音频组件,所述屏幕可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或通过通信组件发送。音频组件还包括至少一个扬声器,用于输出音频信号。

i/o接口为处理器和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。

通信组件用于该电子设备与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件405可以包括:wi-fi模块,蓝牙模块,nfc模块。

综上,本申请提供的一种线程管理方法、存储介质及电子设备,方法包括:获取当前周期接收到的待处理数据的数据量,及与该当前周期之前相邻的多个周期分别接收到的待处理数据的数据量,根据所述多个周期中每个周期接收到的待处理数据的数据量和所述当前周期接收到的待处理数据的数据量,在需要销毁线程时,获取需要销毁的线程数量,并在所述当前周期内销毁所述需要销毁的线程数量的线程。以实现在多个周期内,持续保持较多的线程数量,以避免相邻多个周期内接收到的待处理数据由于存在骤增和骤减,或多个周期内接收到的待处理数据断续的情况造成需要在多个周期内需要不断新建和销毁线程存在的数据处理不稳定,且电子设备运行不平稳的问题。进一步,通过在连续多个周期内接收到的待处理数据均较少时,认为待处理数据量较少且各周期内接收到的待处理数据数量稳定,从而减少线程数量,以节约内存资源,从而保障电子设备高效、稳定的运行。通过在当前周期内接收到的过大时,创建线程,以进一步提高对待处理数据进行处理时的平稳性及高效性。进一步的,在创建线程后,通过根据各所述线程中未处理的待处理数据的数量和接收到的待处理数据的数量得到待处理数据总量,并根据所述待处理数据总量和各所述线程中未处理的待处理数据的数量,将所述接收到的待处理数据分配至该当前周期内的所有线程,以进一步提高对待处理数据进行处理时的平稳性及高效性。

在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统和方法,也可以通过其它的方式实现。以上所描述的系统和方法实施例仅仅是示意性的。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

虽然本申请所揭露的实施方式如上,但所述的内容只是为了便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属技术领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。


技术特征:

1.一种线程管理方法,其特征在于,所述方法包括:

获取当前周期接收到的待处理数据的数据量,及与该当前周期之前相邻的多个周期分别接收到的待处理数据的数据量;

根据所述多个周期中每个周期接收到的待处理数据的数据量和所述当前周期接收到的待处理数据的数据量,判断是否需要销毁线程;

在需要销毁线程时,获取需要销毁的线程数量,并在所述当前周期内销毁所述需要销毁的线程数量的线程。

2.根据权利要求1所述的线程管理方法,其特征在于,根据所述多个周期中每个周期接收到的待处理数据的数据量和所述当前周期接收到的待处理数据的数据量,包括:

计算所述多个周期中的首个周期接收到的待处理数据的数据量与所述多个周期中除所述首个周期外的每个其他周期和所述当前周期分别接收到的待处理数据的数据量的比值;

根据各所述比值和预设比值判断是否需要销毁线程,其中,在各所述比值均大于所述预设比值时,需要销毁线程。

3.根据权利要求1所述的线程管理方法,其特征在于,根据所述多个周期中每个周期接收到的待处理数据的数据量和所述当前周期接收到的待处理数据的数据量,包括:

计算所述多个周期中的首个周期接收到的待处理数据的数据量与所述多个周期中除所述首个周期外的每个其他周期和所述当前周期分别接收到的待处理数据的数据量的数据量的差值;

根据各所述差值和预设差值判断是否需要销毁线程,其中,在各所述差值均大于所述预设差值时需要销毁线程。

4.根据权利要求1所述的线程管理方法,其特征在于,所述需要销毁的线程的数量根据以下方式获得:

将每个所述其他周期和所述当前周期分别接收到的待处理数据的数据量分别与每个线程的最大处理量相除,得到每个其他周期内所需的线程数量及当前周期内所需的线程数量;

将所述首个周期对应的线程数量与多个其他周期内所需的线程数量及当前周期内所需的线程数量中的最大所需的线程数量的差值,作为需要销毁的线程数量。

5.根据权利要求1所述的线程管理方法,其特征在于,在所述当前周期内销毁所述需要销毁的线程数量的线程,包括:

在所述当前周期内按照各所述线程处理完成对应的待处理数据的时间顺序销毁所述需要销毁的线程数量的线程。

6.根据权利要求1所述的线程管理方法,其特征在于,所述方法还包括:

在不需要销毁线程时,获取与所述当前周期相邻的上一周期的线程数量;

根据当前周期内接收到的待处理数据得到该当前周期内的需求线程的数量;

在所述需求线程的数量大于所述上一周期的线程数量时,获得待创建线程的数量,并创建该待创建线程的数量对应的线程;

将该当前周期内接收到的待处理数据分配至该当前周期内的所有线程。

7.根据权利要求6所述的线程管理方法,其特征在于,获得待创建线程的数量,包括:

将所述需求线程的数量与所述上一周期的线程数量的差值作为待创建线程的数量。

8.根据权利要求6所述的线程管理方法,其特征在于,将该当前周期内接收到的待处理数据分配至该当前周期内的所有线程,包括:

根据各所述线程中未处理的待处理数据的数量和接收到的待处理数据的数量得到待处理数据总量;

根据所述待处理数据总量和各所述线程中未处理的待处理数据的数量,将所述接收到的待处理数据分配至该当前周期内的所有线程。

9.一种存储介质,该存储介质存储有计算机程序,其特征在于,所述计算机程序被一个或多个处理器执行时实现如权利要求1-8任意一项所述的线程管理方法。

10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有计算机程序,该计算机程序被所述处理器执行时,执行如权利要求1-8意一项所述的线程管理方法。

技术总结
本申请涉及一种线程管理方法、存储介质及电子设备,方法包括:获取当前周期接收到的待处理数据的数据量,及与当前周期之前相邻的多个周期分别接收到的待处理数据的数据量,根据多个周期中的每个周期和当前周期分别接收到的待处理数据的数据量,判断是否需要销毁线程,在需要销毁线程时,获取需要销毁的线程数量,并在当前周期内销毁需要销毁的线程数量的线程。以实现在多个周期内,持续保持较多的线程数量,避免相邻多个周期内接收到的待处理数据由于存在骤增和骤减,或多个周期内接收到的待处理数据断续的情况造成需要在多个周期内需要不断新建和销毁线程存在的数据处理不稳定的问题。

技术研发人员:邹建伟;李绍斌;谭泽汉;王博;林浩生;张康龙;郭强;刘旭;王肖;吕沙沙;尹雪枫;袁香宇;聂双燕;韦佳琪
受保护的技术使用者:珠海格力电器股份有限公司;珠海联云科技有限公司
技术研发日:2020.01.10
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-59912.html

最新回复(0)