具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书提供的一种实施方案可以应用到客户端/服务器的系统构架中。所述的客户端可以终端设备,如智能手机、平板电脑、智能穿戴设备、专用拍摄设备等。所述的客户端可以具有通信模块,可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式系统的服务器结构。
在本说明书的一个或多个实施例中,可以预先建立特征库和特征对应关系库。
下面以一个具体的应用场景为例对本说明书实施方案进行说明。具体的,图1是本说明书提供的所述一种任务调度处理方法实施例的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
当然,下述实施例的描述并不对基于本说明书的其他可扩展到的技术方案构成限制。例如其他的实施场景中,本说明书提供的实施方案同样可以应用到第三方服务平台提供的与用户交互实任务调度处理的实施场景中,或者形成集成了所述特征库与特征对应关系库的现场专用设备。
本说明书实施例提供任务调度处理方法的具体实施方式,参见图1,所述任务调度处理方法具体包括如下内容:
步骤100:根据待处理类型相同的各个任务对应的分表位的预设特性,将各个所述任务对应的分表位划分为奇数组和偶数组,其中,所述分表位的预设特性为所述分表位的同一数位上的数字的奇偶性。
在步骤100中,所述任务调度处理装置根据待处理类型相同的各个任务各自对应的分表位中的同一数位上的数字的奇偶性,将各个所述任务进行分组。可以理解的是,在某一类型A的任务对应的预设处理时刻到达时,所述调度中心开始对业务装置中的属于类型A的全部任务进行集中处理,所述调度中心先调取当前属于类型A的各个任务的分表位,然后根据属于类型A的各个任务的分表位的特征,将属于类型A的各个任务划分为N组,其中,N为正整数,在一种具体举例子,N可以等于2,以有效减小正式对任务进行处理前的预先运算或处理的复杂程度。其中,所述分表位的特征根据所述分表位本身的组成内容而设定。
可以理解的是,所述任务调度处理装置可以体现为一种调度中心,且该调度中心可以为一种服务器,所述调度中心也可以包括终端设备。所述终端设备可以具有显示功能。具体地,所述终端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
所述服务器可以与所述终端设备进行通信。所述服务器与所述终端设备之间可以使用任何合适的网络协议进行通信,包括在本文件提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
在步骤100中,所述调度中心基于预设规则对各个分表位进行分组,得到由多个所述分表位组成的各个分组,且所述分表位不被重复分组,即每个所述分组中的任何一个所述分表位仅在该分组中出现,通过将分表位进行分组,进而实现对各个所述任务的分组。
可以理解的是,在本实施例中,为了进一步提高数据处理的效率,所述调度中心对处理类型相同的各个所述任务的分组方式并非直接将各个所述任务划分在各个分组中,而是通过对各个所述任务各自对应的分表位进行分组,进而实现对各个所述任务的分组。
另外,在本实施例中,为保证分表位的唯一性,将所述分表位设置为由多位字符组成,在一种举例中,为进一步减小分组处理的计算复杂程度,可以将所述分表位设置为3、4或5位字符。
为了进一步提高数据处理的准确性并避免数据的重复处理及冲突,将所述预设规则设置为各个所述分表位中的一个或多个相同数位上的字符的特性,且步骤100具体为根据各个所述分表位中的一个或多个相同数位上的字符的特性,对各个所述分表位进行分组。
在本实施例中,所述字符可以由全数字组成、可也以有全字母组成,以及,由数字和字母的组合形式组成,参见表1,若所述字符由全数字组成,则所述字符的特性为数值、奇偶特性或倍数特性等数字的特性;若所述字符由全字母组成,则所述字符的特性为字母表示、大小写特性或音节特性等字母的特性;若所述字符由数字和字母的组合形式组成,则所述字符的特性中包含有数字对应的数值、奇偶特性或倍数特性等数字的特性,也包含有字母对应的字母表示、大小写特性或音节特性等字母的特性。
表1
在一种举例中,若所述分表位由多位全字母组成,且所述字符的特性为字母表示,则根据各个所述分表位中的同一数位(以第一数位)上字母的字母表示,将所述分表位按第一数位上的字母表示划分为多个分组,且分组的数量与字母表示的类型相同,如表2所示,若所述字母的字母表示有7中,则将字母表示划分为7个分组,进而需要配置处理功能相同的7个分区中的调度单元对该7个分组中的各个所述分表位对应的所述任务进行处理。
表2
编号 |
分表位的形式 |
第一数位上的字母表示 |
所属分组 |
1 |
ABDS |
A |
分组1 |
2 |
WESD |
W |
分组2 |
3 |
QOAS |
Q |
分组3 |
4 |
AWEQ |
A |
分组1 |
5 |
APQS |
A |
分组1 |
6 |
WETY |
W |
分组2 |
7 |
YUIO |
Y |
分组4 |
8 |
ELKD |
E |
分组5 |
9 |
RPIU |
R |
分组6 |
10 |
PSKH |
P |
分组7 |
11 |
QBDF |
Q |
分组3 |
在一种举例中,若所述分表位由多位全字母组成,且所述字符的特性为大小写特性,则根据各个所述分表位中的相同两个数位(以第一数位和第三数位)上字母的大小写特性,将所述分表位按第一数位和第三数位的大小写特性划分为多个分组,且分组类型如表3所示,第一数位和第三数位字母均大写的分表位属于分组1,第二数位和第三数位字母均小写的分表位属于分组2,第二数位和第三数位有大写字母也有小写字母的分表位属于分组3。
表3
在一种举例中,若所述分表位由多位数字组成,且所述字符的特性为数字的数值,则根据各个所述分表位中的同一数位(以第二数位)上数字的数值表示,将所述分表位按第一数位上的数值表示划分为10个分组,进而需要配置处理功能相同的10个分区中的调度单元对该10个分组中的各个所述分表位对应的所述任务进行处理。
在一种具体实施方式中,为提高任务处理的准确性,所述分表位可以为由至少三位数字组成,也就是说,所述分表位可以由3位数字组成、4位数字组成、5位或5位以上的数字组成。而为了在提高任务处理的准确性的同时,还能够有效提高任务处理的分组效率,可以将分表位设为由3位数字组成。
若所述数字的特性为奇偶特性,则所述步骤100具体实施过程如下:
根据各个所述分表位中的同一数位上的数字的奇偶性,参见表4,以第一数位上的数字的奇偶性为例,将各个所述任务对应的分表位划分为奇数组和偶数组;相对应的,所述处理功能相同的调度单元的数量为两个。
表4
编号 |
分表位 |
第一数位上的数字的奇偶性 |
所属分组 |
1 |
124 |
1 |
奇数组 |
2 |
547 |
5 |
奇数组 |
3 |
359 |
3 |
奇数组 |
4 |
264 |
2 |
偶数组 |
5 |
865 |
8 |
偶数组 |
6 |
590 |
5 |
奇数组 |
7 |
400 |
4 |
偶数组 |
8 |
743 |
7 |
奇数组 |
9 |
805 |
8 |
偶数组 |
10 |
923 |
9 |
奇数组 |
11 |
671 |
6 |
偶数组 |
步骤300:应用各个处理单元同时且分别处理各自对应的分组中的所述任务。
在步骤300中,参见图2,所述调度中心应用各个处理单元同时且分别处理各自对应的分组中的所述任务,其中,一个所述处理单元对应一个分区中的调度单元,且调度单元由集群服务器组成。可以理解的是,为了保证能够对相同类型的任务进行处理,需要应用能够对该类型的任务进行处理的处理功能相同的多个调度单元同时且分别对各个分组对应的所述任务进行处理,并将处理结果存储至数据库,另外,一个所述处理单元可以处理1个或多个所述分组中的任务,且各个所述处理单元处理的所述分组不重复;为了有效提高任务处理的效率,各个所述处理单元可以与各个所述分组一一对应,即一个所述处理单元仅用于处理一个所述分组中的任务,也就是说,处理单元的数量与分组数相同,若分组数为2,则用于对当前触发的任务进行处理的处理单元也为2个。
可以理解的是,本实施例中的调度中心可以应用处理功能相同的处理单元分别对各个分组中的所述任务进行同时处理,即各个处理单元同时处理各自分组中的任务;以有效提高集群服务器的资源利用率;而为了适用于实际应用中的运行需求,调度中心也可以应用各个处理单元分别对各个分组中的所述任务进行分时处理。
从上述描述可知,本说明书实施例中提供的任务调度处理方法,能够使得各个处理单元同时进行任务处理,且能够避免任务处理的冲突或重复运行,有效提高集群服务器的资源利用率,保证了任务处理结果的准确性,并提高了任务处理的效率。
在一种具体实施方式中,本说明书还提供在所述任务调度处理方法中的步骤100之前执行的步骤000的一种具体实施方式,参见图3,所述步骤000具体包括如下内容:
步骤000:根据包含有各个所述任务对应的分表位的字段,获取各个所述任务对应的分表位。
在步骤000中,参见图4,某一类型A的任务对应的预设处理时刻到达时,在所述调度中心开始对业务装置中的属于类型A的全部任务进行集中处理之前,所述调度中心首先获取包含有属于类型A的全部任务的各项信息的数据表,且该数据表中至少有一个字段为包含有各个所述任务对应的分表位的字段,而后在所述数据表中的包含有各个所述任务对应的分表位的字段中获取各个所述任务对应的分表位。
可以理解的是,所述包含有各个所述任务对应的分表位的字段为能够唯一表示一项任务,例如,所述包含有各个所述任务对应的分表位的字段可以为用户编码。
从上述描述可知,本说明书实施例中提供的任务调度处理方法,能够快速且可靠地获取各个所述任务对应的分表位,为后续的任务调度处理提供了准确的数据基础,并提高了任务处理的效率。
在一种具体实施方式中,本说明书还提供在所述任务调度处理方法中的步骤301的一种具体实施方式,参见图5,所述步骤000具体包括如下内容:
步骤001:在数据表中添加用于表示各个所述任务对应的分表位的分表位。
步骤003:根据所述包含有分表位的字段,对所述分表位字段进行初始化处理,得到各个所述任务对应的分表位。
在上述步骤中,所述调度中心首先在数据表中增加分表位字段,且所示分表位字段的值为数据表中包含有各个所述任务对应的分表位的字段中的分表位的值,其中,所述数据表中分表位字段中所有记录分表位的值的初始化可以通过运行一次的完整的处理任务而实现,即通过更新数据状态来完成分表位字段中值的初始化。
从上述描述可知,本说明书实施例中提供的任务调度处理方法,提供了一种快速取各个所述任务对应的分表位的具体实施方式,能够进一步地提高获取各个所述任务对应的分表位的效率和准确性。
为进一步的说明本方案,以所述处理类型为基金资产的收益计算为例进行说明,针对应用中的存在对所有用户的基金资产对每笔资产的昨日的日收益、累计收益等进行计算的待处理任务,在LDC(Logic Data Center-逻辑数据中心,通过对IDC(Internet DataCenter)进行逻辑划分,实现"单元部署"时所采用的方案)的架构下,一个调度任务只能配置在分区Azone或分区Bzone中,调度中心根据设定的CRON表达式启动调度任务,由业务代码实现的sofa-platform-schedule的接口对待处理的任务进行拆分,而后通过rpc调用方式将任务分发到调度任务所在的分区(分区Azone或者分区Bzone)的服务器中进行执行,例如一个分区的应用有100台服务器,其应用服务器是均匀部署在Rz11A、Rz11B、Rz12A、Rz12B、Rz13A、Rz13B、Rz24A、Rz24B、Rz24A及Rz25B中的,每个分区中都有10台服务器。在Azone和Bzone分别配置一套功能完全相同的调度任务,通过设置不同的CRON表达式(其中,CRON表达式为Spring CRON表达式,字符串以5或6个空格隔开,分开工6或7个域,每一个域分别代表一个含义,能够指定一个时间点或者一个重复触发的时间间隔,例如“0 0 10,14,16?”即表示每天的10点、14点和16点整即为触发时间)。将分区Azone和分区Bzone的任务运行的时间错开,例如分区Azone的任务配置在奇数秒运行,Bzone任务配置在偶数秒运行,这样在整体上看来集群中的所有服务器都参与了任务处理,使得Azone或者Bzone的服务器不会长时间地处于空闲状态,但仍然无法使得分区Azone和分区Bzone在的服务器同时进行任务处理,无法进一步提高调度任务的执行效率,因此,针对该问题,本说明书还提供一种任务调度处理方法的具体应用实例,参见图6,所述任务调度处理方法的应用实例具体包括如下内容:
调度中心根据应用设置的CRON表达式,当前时间满足CRON表达式时,调度中心通过消息投递地方式通知应用开始执行调度任务,应用代码中通过实现SOFA企业应用框架平台列表(SOFA(Service Oriented Fabric Architecture)-platform-schedule)提供的用于生成所述任务的分表位进行分组的Splitor接口(完全使用标准C++编写的文件分割合并程序)、用于将生成所述任务的分表位进行拆分并得到分组的Loader接口(加载程序)以及用于根据所述分组中分表位对应的任务进行处理、并将处理结果写入到OB(OceanBase)数据库中的Executer接口(执行程序),及所述Splitor接口、Loader接口和Executer接口实现调度任务的拆分、分发和执行。
以基金资产的收益计算批处理任务为例,并以所述包含有分表位的字段为用户ID字段user ID为例,所述分表位为千分分表位为例,其中,业务装置通常是按照user ID的第14,15这两位数字将数据分割到100张分表中,千分分表位是根据分表中的user ID字段的第13,14,15这三个数位决定的,需要在数据表中增加此字段,并用user ID字段的第13,14,15这三个数位初始化,在本应用实例中为了能够充分利用机器中每台机器的中央处理器(CPU,Central Processing Unit)、线程资源以及数据库连接资源等,分别在分区Azone和分区Bzone中都配置了收益计算任务,为了能够让分区Azone和分区Bzone的任务同时执行并且又不会造成同一条资产数据收益计算的冲突或者重复计算,我们首先在基金资产收益计算状态表中增加千分分表位字段milliIndex,milliIndex的值为表中user ID字段值的第13,14,15位,例如user ID=2088402923357728时,则milliIndex=772,表中所有记录milliIndex值的初始化可以运行一次的完整收益计算批处理任务完成,因为每笔资产的收益计算完成后都会更新其状态字段为“完成”,在更新数据的状态时候增加set milli_idx=StringUtil.substring(user ID,-4,-1),便可以完成所有数据milliIndex值的初始化。
Splitor接口处理阶段针对每张分表会生成一个key值,100张分表就是100个key值,key值就是分表对应的分表位,keyList=["00","01","02",...,"99"],本方案中为了提升集群服务器资源的利用率,让分区Azone和分区Bzone的任务同时执行并且又不会造成同一条资产数据收益计算的冲突或者重复计算,调度任务A在生成每个分表对应的key值的生成规则为"分表位"+“_”+"奇数千分分表位",比如00分表对应的调度任务A的key列表为:
["00_100","00_300","00_500",,"00_700",,"00_900"],
调度任务A中的所有分表都这样处理完以后生成:
keyList1=["00_100","00_300",…,"99_999"]。
调度任务B在生成每个分表对应的key值的生成规则为"分表位"+“_”+"偶数千分分表位",比如00分表对应的调度任务B的key列表为:
["00_000","00_200","00_400","00_600",,"00_800",],
调度任务B中的所有分表都这样处理完以后生成:
keyList2=["00_000","00_200",…,"99_899"]。
调度任务A和调度任务B在Loader接口处理阶段将各自在splitor接口处理阶段生成key值进行拆分得到其对应的分表位和千分分表位,例如调度任务A的一个key为60_960,拆分后得到的分表位为60,千分分表位为960,调度任务B的一个key为60_860,拆分后得到的分表位为60,千分分表位为860。
调度任务A和调度任务B分别在其Executer阶段根据Loader接口处理阶段获取的user ID列表,获取user ID对应的基金资产列表并进行收益计算,最后将结果写入到OB数据库中。
本应用实例中通过在分区Azone和分区Bzone中分别配置调度任务A和调度任务B,并且在splitor接口处理阶段通过为任务A生成带奇数千分分表位的key,任务B生成带偶数千分分表位的key,这样就将任务A和任务B要处理的数据隔离开来,任务A和任务B就可以同时运行并且不会造成同一条资产数据收益计算的冲突或者重复计算。通过本方案使得集群中的每一台机器的CPU、企业应用框架SOFA中的tr服务的线程池以及数据库连接数等资源都能得到充分利用,提升了调度任务整体的执行效率。
从上述描述可知,本说明书应用实例中提供的任务调度处理方法,通过在分区Azone和分区Bzone配置两个功能相同的调度任务,使得任务在运行时分区Azone和分区Bzone中的每一台机器的CPU、TR线程池以及数据库连接数等资源都能得到充分利用;以及通过在分表中引入千分分表位的概念,将调度任务要处理的数据进行隔离,调度任务A负责奇数千分分表位数据的处理,调度任务B负责偶数千分分表位数据的处理,能够使得两个可以同时运行并且不会造成同一条资产数据收益计算的冲突或者重复计算。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
本说明书实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图7是本发明实施例的一种任务调度处理的服务器的硬件结构框图。如图7所示,服务器10可以包括一个或多个(图7中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图7中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如GPU(Graphics Processing Unit,图像处理器),或者具有与图7所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的搜索方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述任务调度处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
基于上述所述的任务调度处理方法,本说明书还提供一种任务调度处理的装置。所述的装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的设备装置。基于同一创新构思,本说明书提供的一种实施例中的处理装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的处理装置的实施可以参见前述方法的实施,重复之处不再赘述。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。具体的,如图8所示,图8是本说明书提供的可以用于服务器一侧的一种任务调度处理的装置实施例的模块结构示意图,具体的可以包括:
任务分组模块20,用于根据待处理类型相同的各个任务对应的分表位的预设特性,将各个所述任务对应的分表位划分为奇数组和偶数组,其中,所述分表位的预设特性为所述分表位的同一数位上的数字的奇偶性。
任务处理模块40,用于应用两个处理单元同时且分别处理奇数组和偶数组中的分表位对应的所述任务。
本说明书提供的任务调度处理装置的实施例具体可以用于执行上述任务调度处理方法的实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
从上述描述可知,本说明书实施例中提供的任务调度处理装置,能够使得各分区中的调度单元同时进行任务处理,且能够避免任务处理的冲突或重复运行,有效提高集群服务器的资源利用率,保证了任务处理结果的准确性,并提高了任务处理的效率。
在一种具体实施方式中,参见图9,所述任务调度处理装置中还具体包括分表位获取模块00,所述分表位获取模块00用于根据包含有各个所述任务对应的分表位的字段,获取各个所述任务对应的分表位。
其中,所述分表位获取模块具体包括如下内容:
分表位字段添加单元01,用于在数据表中添加用于表示各个所述任务对应的分表位的分表位字段。
分表位字段初始化单元03,用于根据所述包含有分表位的字段,对所述分表位字段进行初始化处理,得到各个所述任务对应的分表位。
从上述描述可知,本说明书实施例中提供的任务调度处理装置,能够使得各分区中的调度单元同时进行任务处理,且能够避免任务处理的冲突或重复运行。
本说明书实施例提供的任务调度处理方法可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c++语言在PC端实现,或其他例如Linux、android、iOS系统相对应的应用设计语言集合必要的硬件实现,或者基于量子计算机的处理逻辑实现等。具体的,本说明书提供的一种服务器实现上述方法的实施例中,所述服务器可以包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:
步骤100:根据待处理类型相同的各个任务对应的分表位的预设特性,将各个所述任务对应的分表位划分为奇数组和偶数组,其中,所述分表位的预设特性为所述分表位的同一数位上的数字的奇偶性。
步骤300:应用两个处理单元同时且分别处理奇数组和偶数组中的分表位对应的所述任务。
从上述描述可知,本说明书实施例中提供的服务器,能够使得各分区中的调度单元同时进行任务处理,且能够避免任务处理的冲突或重复运行,有效提高集群服务器的资源利用率,保证了任务处理结果的准确性,并提高了任务处理的效率。
上述的指令可以存储在多种计算机可读存储介质中。所述计算机可读存储介质可以包括用于存储信息的物理装置,可以将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。本实施例所述的计算机可读存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。下述所述的装置或服务器或客户端或系统中的指令同上描述。
基于前述所述,本说明书实施例还提供一种电子设备,包括显示屏、处理器以及存储处理器可执行指令的存储器。图10是本说明提供的一种电子设备实施例的结构示意图。所述的显示屏可以包括触摸屏、液晶显示器、投影设备等显示信息内容的设备。所述的电子设备类型可以包括移动终端、专用车险设备、车机交互设备、个人电脑等。所述处理器执行所述指令时可以实现:
步骤100:根据待处理类型相同的各个任务对应的分表位的预设特性,将各个所述任务对应的分表位划分为奇数组和偶数组,其中,所述分表位的预设特性为所述分表位的同一数位上的数字的奇偶性。
步骤300:应用两个处理单元同时且分别处理奇数组和偶数组中的分表位对应的所述任务。
需要说明的是,本说明书实施例上述所述的装置、电子设备,根据相关方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
尽管本说明书实施例内容中提到构建特征库或特征对应关系库、矩形框标记损伤位置、基于面积大小确定位置关系、利用卷积神经网络初步识别损伤位置等之类的数据获取、位置排列、交互、计算、判断等操作和数据描述,但是,本说明书实施例并不局限于必须是符合行业通信标准、标准图像数据处理协议、通信协议和标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。