线程调优方法、装置、计算机设备和存储介质与流程

文档序号:15998832发布日期:2018-11-20 19:11阅读:131来源:国知局

本发明涉及计算机领域,特别是涉及一种线程调优方法、装置、计算机设备和存储介质。



背景技术:

线程,是程序执行流的最小单元,原始数据经过每个线程的处理,生成最终数据,当原始数据以一定的时间间隔进行连续处理时,要求每个线程的处理时间小于上述时间间隔,并且所有线程的运行时间综合满足时间要求,这样便满足了连续处理的要求。

但是,当线程数量超过处理器核心数量时,会出现处理器资源的抢占,导致每个线程中的算法处理时间变长,这时便需要进行多线程性能的调优,线程性能的调优是指通过不断地调试以最大化利用处理器,从而提升多线程程序的效率。由于CPU(Central Processing Unit,中央处理器)通常以时间片轮转的方法进行处理器多线程的调度。因此,在多线程性能调优时,为满足约束条件,通常需要反复修改各线程的计算负载,导致处理效率低下。



技术实现要素:

基于此,有必要针对线程调优处理效率低的问题,提供一种线程调优方法、装置、计算机设备和存储介质。

一种线程调优方法,包括:

测试预定数目线程在不同预设分配方式下并且在并行异步处理模式下的处理时间;

基于处理时间最高的分配方式,根据所述预设约束条件调整所述预定数目线程的处理时间;

获取经调整后已满足所述预设约束条件的所述预定数目线程为已调整线程;

获取所述已调整线程中的各线程在单线程模式下的运行时间,根据所述运行时间确定线程调优阈值;

根据所述线程调优阈值进行线程调优。

在一个实施例中,所述预设约束条件包括在并行异步处理模式下所述预设数目线程中各线程的处理时间约束和全部线程的处理总时间约束;

所述基于处理时间最高的分配方式,根据所述预设约束条件调整所述预定数目线程的处理时间的步骤包括:

获取所述各线程的处理时间约束和全部线程的处理总时间约束;

基于处理时间最高的分配方式,根据所述各线程的处理时间约束调整所述预定数目线程中各线程的处理时间,直到所述预设数目线程的处理总时间满足所述全部线程的处理总时间约束。

在一个实施例中,根据所述线程调优阈值进行线程调优的步骤包括:

判断线程的运行时间是否小于等于所述线程调优阈值;

若否,则根据所述线程调优阈值调整所述线程的运行时间直到小于等于所述线程调优阈值。

在一个实施例中,所述预定数目线程中各线程的处理时间小于等于所述各线程的处理时间约束;

所述预设数目线程的处理总时间小于等于所述全部线程的处理总时间约束。

在一个实施例中,所述预设分配方式包括:按总时间均分的分配方式、按各线程计算时间从小到大的分配方式或按各线程计算时间从大到小的分配方式的至少任意两种。

一种线程调优装置,包括:

测试模块,用于测试预定数目线程在不同预设分配方式下并且在并行异步处理模式下的处理时间;

调整模块,用于基于处理时间最高的分配方式,根据所述预设约束条件调整所述预定数目线程的处理时间。

获取模块,用于获取经调整后已满足所述预设约束条件的所述预定数目线程为已调整线程;

确定模块,用于获取所述已调整线程中的各线程在单线程模式下的运行时间,根据所述运行时间确定线程调优阈值。

调优模块,根据所述线程调优阈值进行线程调优。

在一个实施例中,所述调整模块包括:

条件获取模块,用于获取所述各线程的处理时间约束和全部线程的处理总时间约束;

时间调整模块,用于基于处理时间最高的分配方式,根据所述各线程的处理时间约束调整所述预定数目线程中各线程的处理时间,直到所述预设数目线程的处理总时间满足所述全部线程的处理总时间约束。

在一个实施例中,所述调优模块还用于判断线程的运行时间是否小于等于所述线程调优阈值;若否,则根据所述线程调优阈值调整所述线程的运行时间直到小于等于所述线程调优阈值。

一种计算机设备,包括存储器、处理器以及存储在存储器上并可以在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的线程调优方法。

一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的线程调优方法。

上述线程调优方法、装置、计算机设备和存储介质,由于线程调优阈值是根据已调整线程中的各线程在单线程模式下的运行时间确定的,而运行时间是基于处理时间最长的负载分配方式和约束条件下,考虑了分配方式的性能和多个线程竞争内核的情况,因此,线程调优阈值能够表示线程最合适的处理时间,从而作为线程调优的性能参数。在后续设计多线程应用中,以线程调优阈值作为调优基准,若线程的运行时间大于该线程调优阈值,则需要对线程进行调优,满足线程调优阈值后,再加入到设计应用系统中。通过直接与线程参考阈值进行比较,省去了不必要的反复调优,提高了多线程调优的处理效率。

附图说明

图1为一个实施例中线程调优方法的流程示意图;

图2为一个实施例中基于处理时间最长的分配方式,根据预设约束条件调整预定数目线程的处理时间步骤的流程示意图;

图3为一个实施例中根据线程调优阈值进行线程调优步骤的流程示意图;

图4为一个实施例中线程调优装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

在一个实施例中,如图1所示,提供了一种线程调优方法,包括以下步骤:

S102,测试预定数目线程在不同预设分配方式下并且在并行异步处理模式下的处理时间。

预定数目线程是指预定的CPU(Central Processing Unit,中央处理器)核心数量和线程数量。常见CPU的核心数量与线程数量有二核四线程、四核四线程以及四核八线程等。由于当线程数量等于CPU核心数量时,每个线程都能占用一个核心进行计算处理。但是当线程数量超过CPU核心数量时,就会出现各线程抢占CPU资源的情况,导致每个线程的处理时间变长,这时则需要进行线程调优。因此本实施例是针对线程数量超过核心数量时的线程调优。

线程有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程包括线程ID,当前指令指针、寄存器集合和堆栈等。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位。并且线程是按照一定的策略调度到CPU上执行的。

具体地,由于线程的负载性能是由线程的处理时间来衡量的,处理时间越长负载性能越低,处理时间越短负载性能越高。测试预定数目线程分别在不同预设分配方式下并且是在并行异步处理模式下的处理时间。该处理时间是指所有预定数目线程全部处理完成的总时间,处理时间越高则表示以该分配方式进行分配的线程的负载性能越低。预设分配方式可以包括不同的分配方式,例如包括:按总时间均分的分配方式、按各线程计算时间从小到大的分配方式以及按各线程计算时间从小到大的分配方式。分别测试预定数目线程在不同分配方式下在并行异步模式下进行处理时的处理时间。

其中,以图像为例,并行异步处理模式是指在线程处理图像时是按照一定的帧频进行处理,无需等待上一张图像全部处理完成后才能处理下一张图像,也就是可以多线程同时处理多张图像。并且,由于在并行异步处理模式下线程是存在CPU资源竞争的情况,因为有竞争所以会过多的消耗运行时间,并行异步处理模式下运行时间会增长。也就是即使为各线程分配好处理时间,最终得到的运行时间会比实际分配给线程的处理时间长得多。例如,当分配方式为均分的分配方式时,在二核四线程的情况下以两个线程竞争一个核心为例,原本平均分配给这两个线程的处理时间为45ms,但是由于是两个线程竞争一个核心,因此实际上线程处理完成时的时间约为145ms。

S104,基于处理时间最长的分配方式,根据预设约束条件调整预定数目线程的处理时间。

具体地,选择处理时间最长的分配方式,也就是负载性能最低的分配方式。在程序运行时,一般情况下,如果负载性能最低的负载分配方式都能满足系统的要求,那么其他的分配方式自然能够满足系统的要求。因此,选择处理时间最长的分配方式。基于在处理时间最长的分配方式下,根据约束条件调整预定数目线程的处理时间。约束条件包括在并行异步处理模式下预设数目线程中各线程的处理时间约束和全部线程的处理总时间约束。

S106,获取经调整后已满足预设约束条件的预定数目线程为已调整线程。

具体地,经调整后同时满足约束条件中的预设数目线程中各线程的处理时间约束和全部线程的处理总时间约束的预设数目线程为已调整线程。

S108,获取已调整线程中的各线程在单线程模式下的运行时间,根据运行时间确定线程调优阈值。

具体地,由于系统运行时一般都是按照并行异步的处理模式进行处理,而实际根据线程调优阈值以及调优算法进行线程调优时一般都是同步处理模式。其中,同步处理模式是指一个线程占用全部内核进行处理的情况,也就是单线程模式。因此,为了符合实际调优需求需要将已调整线程中的各线程在单线程模式下进行处理获取运行时间。单线程模式是指多个线程依次处理图像,每个时刻只有一个线程单独占用所有的核心数量进行计算处理,处理下一张图像的时候需要等待上一张图像全部处理完成之后才能开始,和并行异步的处理模式是完全相反的。

线程单独占用全部核心数量处理时,所有的CPU资源都同时在处理同一张图像,因此各线程之间是不会存在CPU资源竞争的情况。如果存在CPU竞争情况,则会导致由于CPU资源竞争激烈而消耗掉运行时间,而无CPU资源竞争情况下的运行时间即为线程实际情况上真正运行的时间。因此,获取所述已调整线程中的各线程在单线程模式下的运行时间,根据该运行时间确定线程调优阈值。

S110,根据线程调优阈值进行线程调优。

具体地,线程调优阈值即为各线程在单线程模式下的运行时间。对于后续涉及多线程应用程序的每个单线程而言,若线程的运行时间大于线程调优阈值,即需要对线程进行调优,直到满足调优阈值也就是小于等于各线程在单线程模式下的运行时间时才能实际投入到应用程序中使用。

可以理解得是,这里的多线程的线程数目在S102-S110中是不变的,比如,测试的预定数目线程是两个具体的线程,则线程调优阈值也是针对具有两个具体线程的情形,测试时是三个具体的线程,则线程调优阈值也是针对具有三个具体线程的情形。

上述线程调优方法,由于线程调优阈值是根据已调整线程中的各线程在单线程模式下的运行时间确定的,而运行时间是基于处理时间最长的负载分配方式和约束条件下,考虑了分配方式的性能和多个线程竞争内核的情况,因此,线程调优阈值能够表示线程最合适的处理时间,从而作为线程调优的性能参数。在后续设计多线程应用中,例如,三线程(如线程A、B、C)应用,以S102-S110的方法针对三线程(A、B、C)的各自的线程调优阈值作为调优基准,若某个线程的运行时间大于S108确定的该线程调优阈值,则需要对该线程进行调优,满足线程调优阈值后,再加入到设计应用系统中。通过直接与线程参考阈值进行比较,省去了不必要的反复调优,提高了多线程调优的处理效率。

在一个实施例中,如图2所示,基于处理时间最长的分配方式,根据预设约束条件调整预定数目线程的处理时间包括以下步骤:

S202,获取各线程的处理时间约束和全部线程的处理总时间约束。

其中,预设约束条件包括在并行异步处理模式下预设数目线程中各线程的处理时间约束和全部线程的处理总时间约束。

具体地,获取预设的约束条件即为获取在并行异步处理模式下各线程的处理时间约束和全部线程的处理总时间约束。也就是各线程的处理时间的上限值和全部线程处理总时间的上限值。预设的约束条件可根据实际调优需求进行设定。

S204,基于处理时间最高的分配方式,根据各线程的处理时间约束调整预定数目线程中各线程的处理时间,直到预设数目线程的处理总时间满足全部线程的处理总时间约束。

其中,预定数目线程中各线程的处理时间需要小于等于各线程的处理时间约束。预设数目线程的处理总时间需要小于等于全部线程的处理总时间约束。

具体地,基于处理时间最高的分配方式,根据各线程的处理时间的上限值调整预定数目线程中各线程的处理时间,不能超过各线程的处理时间的上限值。将预定数目线程调整好之后,测试调整过的预定数目线程在处理时间最长的分配方式下并行异步处理模式时的处理时间。该处理时间为预设数目线程的处理总时间,若该处理时间满足全部线程的处理总时间约束时,也就是小于等于全部线程的处理总时间的上限值时,则经过调整已经满足约束条件的预定数目线程为已调整线程。

例如,当基于按时间均分的分配方式、有两个线程以及设定的各线程的处理时间的上限值为50ms和全部线程的处理总时间的上限值为150ms的情形,这只是示例性的,本发明并不限制与此。以50ms为依据调整这两个线程的处理时间,可以一开始将两个线程的处理时间都调整到约束的上限值50ms,也就是为两个线程的分配的处理时间为50ms后,将这两个线程在并行异步模式下进行处理获取处理时间,若处理时间小于等于150ms,则这两个将处理时间调整到50ms的线程即成为满足约束条件的已调整线程。若处理时间大于150ms,则该处理时间不满足全部线程的处理总时间的上限值150ms,则需要进一步调整这两个线程的处理时间。因为处理时间是大于全部线程的处理总时间的上限值150ms,所以将分配给两个线程的处理时间往下调整,例如向下调整为45ms,进一步获取当45ms的处理时间下的线程在并行异步模式下处理的处理时间是否满足150ms的限制。若满足则调整结束,若不满足则再次进行调整直至满足为止。

进一步的,若两个线程的处理时间调整到45ms后的总处理时间是小于150ms的,则可以进一步的将两个线程的处理时间基于45ms往上调整看是否还有可以满足150ms的上限值并且比45ms大的值。也就是在保证满足约束条件的前提下尽可能将线程调整到与各线程的处理时间的上限值和全部线程的处理总时间的上限值越接近的值。因为,在设定预设上限值时是根据实际调优需求进行设定的,一般情况下是考虑线程能够负载的最大处理负荷,也就是如果预设的上限值分别是50ms和150ms时,则已经是CPU能够负载最大处理负荷时的处理时间。因此,调整预定数目线程的处理时间时尽可能接近预设的上限值可以尽可能保证CPU的最大处理负荷量,防止后续调优导致CPU的最大处理负荷量变小。

在一个实施例中,如图3所示,根据线程调优阈值进行线程调优包括以下步骤:

S302,判断线程的运行时间是否小于等于线程调优阈值。

具体地,线程调优阈值即为各线程在单线程模式下的运行时间。在后续涉及多线程应用程序中,若线程的运行时间大于线程调优阈值时,即需要对线程进行调优。所以判断线程的运行时间是否小于等于线程调优阈值。

S304,若否,则根据线程调优阈值调整线程的运行时间直到小于等于线程调优阈值。

具体地,若判断出线程的运行时间大于线程调优阈值,则将线程的运行时间进行调整直到满足调优阈值,也就是小于等于线程调优阈值时间时才能实际投入到应用程序中使用。

在一个实施例中,不同分配方式包括但不限于以下三种:按总时间均分、各线程计算时间从小到大和各线程计算时间从大到小。在此,无论哪种方式,对各个线程的时间分配是从单线程处理的角度上考虑的,因此各个线程被分配的时间总和与总处理时间相同。虽然在测试之前会根据不同的分配方式为各线程分配处理时间,但是由于测试时是多线程并行异步处理的模式,因此,多线程并行异步处理的时间与前述从单线程的角度分配处理时间是不同的,所以需要分别计算各线程在不同分配方式下的处理时间。

其中,例如,对于总处理时间为100毫秒且有4个线程分别单独处理的情况:对于按总时间均分到各线程的情形,每个线程分配的处理时间为25毫秒。

对于按各线程处理时间从小到大分配,即4个线程分配的处理时间从小到大的情形,例如线程1可以分配处理时间10ms、线程2可以分配处理时间20ms、线程3可以分配处理时间30ms以及线程4可以分配处理时间40ms。

对于按各线程计算时间从大到小分配,即为4个线程分配的处理时间从大到小的情形,线程1可以分配处理时间40ms、线程2可以分配处理时间30ms、线程3可以分配处理时间20ms以及线程4可以分配处理时间10ms。

根据不同的分配方式下测试各线程在不同分配方式下的处理时间,根据不同分配方式下的处理时间确定负载性能,哪种分配方式下处理时间最长即为负载性能最低的。在程序运行过程中,运行的时间会有上下浮动,如果负载性能最低的负载分配方式都能满足系统的要求,那么其他的分配方式自然能够满足系统的要求。因此,通过测试不同分配方式下的负载性能,选择负载性能最低的分配方式并基于最低负载性能的分配方式确定出线程调优阈值,保证了该调优阈值在实际运行中可以适用三种分配方式中的任意一种或多种。

在一个实施例中,为了测试各线程在不同预设分配方式的负载性能,由于预设分配方式有多种,在选择预设分配方式时可以选择包括按总时间均分的分配方式、按各线程计算时间从小到大的分配方式或按各线程计算时间从大到小等三种分配方式中的至少任意两种。

上述线程调优方法,由于线程调优阈值是根据已调整线程中的各线程在单线程模式下的运行时间确定的,而运行时间是基于处理时间最长的负载分配方式和约束条件下,考虑了分配方式的性能和多个线程竞争内核的情况,因此,线程调优阈值能够表示线程最合适的处理时间,从而作为线程调优的性能参数。在后续设计多线程应用中,以线程调优阈值作为调优基准,若线程的运行时间大于该线程调优阈值,则需要对线程进行调优,满足线程调优阈值后,再加入到设计应用系统中。通过直接与线程参考阈值进行比较,省去了不必要的反复调优,提高了多线程调优的处理效率。

应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种线程调优装置400,包括测试模块402、调整模块404、获取模块406、确定模块408以及调优模块410。

测试模块402,用于测试预定数目线程在不同预设分配方式下并且在并行异步处理模式下的处理时间。

调整模块404,用于基于处理时间最高的分配方式,根据预设约束条件调整预定数目线程的处理时间。

获取模块406,用于获取经调整后已满足所述预设约束条件的所述预定数目线程为已调整线程。

确定模块408,用于获取已调整线程中的各线程在单线程模式下的运行时间,根据运行时间确定线程调优阈值。

调优模块410,根据线程调优阈值进行线程调优。

在一个实施例中,测试模块402,包括:

条件获取模块,用于获取各线程的处理时间约束和全部线程的处理总时间约束。

时间调整模块,用于基于处理时间最高的分配方式,根据各线程的处理时间约束调整预定数目线程中各线程的处理时间,直到预设数目线程的处理总时间满足全部线程的处理总时间约束。

在一个实施例中,调优模块410还用于判断线程的运行时间是否小于等于线程调优阈值;若否,则根据线程调优阈值调整线程的运行时间直到小于等于线程调优阈值。

上述线程调优方法和装置,由于线程调优阈值是根据已调整线程中的各线程在单线程模式下的运行时间确定的,而运行时间是基于处理时间最长的负载分配方式和约束条件下,考虑了分配方式的性能和多个线程竞争内核的情况,因此,线程调优阈值能够表示线程最合适的处理时间,从而作为线程调优的性能参数。在后续设计多线程应用中,以线程调优阈值作为调优基准,若多线程所包括的各线程的运行时间大于各自的线程调优阈值,则需要对对应的线程进行调优,直到满足线程调优阈值后,再加入到设计应用系统中。通过直接与线程调优阈值进行比较,省去了不必要的反复调优,提高了多线程调优的处理效率。

关于线程调优装置400的具体限定可以参见上文中对于线程调优方法的限定,在此不再赘述。上述线程调优装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储调优数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种线程调优方法。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

测试预定数目线程在不同预设分配方式下并且在并行异步处理模式下的处理时间。

基于处理时间最长的分配方式,根据预设约束条件调整所述预定数目线程的处理时间。

获取经调整后已满足预设约束条件的预定数目线程为已调整线程。

获取已调整线程中的各线程在单线程模式下的运行时间,根据运行时间确定线程调优阈值。

根据线程调优阈值进行线程调优。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取各线程的处理时间约束和全部线程的处理总时间约束。

基于处理时间最高的分配方式,根据各线程的处理时间约束调整预定数目线程中各线程的处理时间,直到预设数目线程的处理总时间满足全部线程的处理总时间约束。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

判断线程的运行时间是否小于等于线程调优阈值。

若否,则根据线程调优阈值调整线程的运行时间直到小于等于线程调优阈值。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

测试预定数目线程在不同预设分配方式下并且在并行异步处理模式下的处理时间。

基于处理时间最长的分配方式,根据预设约束条件调整所述预定数目线程的处理时间。

获取经调整后已满足预设约束条件的预定数目线程为已调整线程。

获取已调整线程中的各线程在单线程模式下的运行时间,根据运行时间确定线程调优阈值。

根据线程调优阈值进行线程调优。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取各线程的处理时间约束和全部线程的处理总时间约束。

基于处理时间最高的分配方式,根据各线程的处理时间约束调整预定数目线程中各线程的处理时间,直到预设数目线程的处理总时间满足全部线程的处理总时间约束。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

判断线程的运行时间是否小于等于线程调优阈值。

若否,则根据线程调优阈值调整线程的运行时间直到小于等于线程调优阈值。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1