System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及数据处理,具体涉及一种数据同步方法、装置、电子设备及计算机可读存储介质。
技术介绍
1、随着信息与通讯技术的发展,海量数据时代已经到来。各个行业,尤其是对实时性要求较高的行业要求系统在单位时间内处理的数据量与日俱增,例如金融、电信、网络通信服务(电子邮件、即时通信)、电子商务系统等。
2、对海量数据的处理,通过硬件提高处理效率的空间已经很小。在软件方面,主要通过多进程、多线程并发处理海量数据。将业务数据拆分为若干任务,分别将每个任务分配给不同的进程/线程进行处理,并进行数据同步以得到整个业务的最终处理结果。
3、但是,目前在多线程并发执行过程中,常见的线程同步方法中需要用到互斥量(mutex)、读写锁(rw-lock)、条件变量(cond)和信号量(semaphore)等实现对数据同步的控制,其中,互斥量是一种保护共享资源不被多个线程同时访问的机制,当一个线程获得互斥量时,其他线程必须等待直到互斥量被释放。读写锁是允许多个线程同时读取资源,但写入资源时需要独占访问。条件变量是使线程在某些条件未满足时等待,而信号量则用于限制对资源的并发访问数量。因此,在对不同线程之间的数据进行同步时,就需要将互斥量、读写锁、条件变量和信号量等大量用于数据同步的变量插入到业务进程中,进而导致资源开销较大同时开发过程也十分麻烦耗时。
技术实现思路
1、有鉴于此,本申请实施例提供了一种数据同步方法、装置、电子设备及计算机可读存储介质,用于减少不同线程之间数据同步时的资源开
2、第一方面,本申请实施例提供了一种数据同步方法,包括:
3、接收目标业务执行指令;
4、响应于所述目标业务执行指令,调用所述目标业务对应的主线程的多个子线程异步执行所述目标业务对应的任务,获取所述各个子线程对应的执行状态信息,并存储至对应的线程变量中;
5、将所述各个子线程对应的所述线程变量中所述执行状态信息传输至所述主线程;
6、对所述各个子线程对应的所述线程变量中所述执行状态信息进行整理分析,获取所述目标业务的目标执行结果。
7、作为本申请实施例一种可选的实施方式,在所述接收目标业务执行指令之后,所述方法包括:
8、响应于所述目标业务执行指令,确定所述目标业务对应的多个子任务;
9、针对所述目标业务对应的多个子任务中的每一个子任务,创建与所述每一个子任务对应的子线程以及所述子线程的线程变量。
10、作为本申请实施例一种可选的实施方式,所述响获取所述各个子线程对应的所述执行状态信息,并存储至对应的线程变量中;包括:
11、基于预设对应关系,通过所述各个子线程对应的标识获取所述各个子线程对应的所述线程变量;所述预设对应关系中包括所述各个子线程的标识以及所述各个子线程的所述线程变量的对应关系。
12、作为本申请实施例一种可选的实施方式,所述将所述各个子线程对应的所述线程变量中所述执行状态信息传输至所述主线程,包括:
13、基于数据回调机制,将所述各个子线程对应的所述线程变量中所述执行状态信息传输至所述主线程。
14、作为本申请实施例一种可选的实施方式,所述基于数据回调机制,将所述各个子线程对应的所述线程变量中所述执行状态信息传输至所述主线程,包括:
15、获取所述各个子线程对应的数据回调接口;
16、基于所述数据回调接口,结合所述数据回调机制将所述各个子线程对应的所述线程变量中所述执行结果传输至所述主线程。
17、作为本申请实施例一种可选的实施方式,在所述针对所述目标业务对应的多个子任务中的每一个子任务,创建与所述每一个子任务对应的子线程以及所述子线程的线程变量之后,所述方法包括:
18、为所述多个子任务对应的所述子线程,注册对应的数据回调接口。
19、作为本申请实施例一种可选的实施方式,所述对所述各个子线程对应的所述线程变量中所述执行状态信息进行整理分析,获取所述目标业务的目标执行结果之后,所述方法还包括:
20、将所述目标执行结果输出,并将所述各个子线程对应的所述线程变量中的数据清除。
21、第二方面,本申请实施例提供了一种数据同步装置,包括:
22、接收单元,用于接收目标业务执行指令;
23、调用单元,用于响应于所述目标业务执行指令,调用所述目标业务对应的主线程的多个子线程异步执行所述目标业务对应的任务,获取所述各个子线程对应的执行状态信息,并存储至对应的线程变量中;
24、传输单元,用于将所述各个子线程对应的所述线程变量中所述执行状态信息传输至所述主线程;
25、整理单元,用于对所述各个子线程对应的所述线程变量中所述执行状态信息进行整理分析,获取所述目标业务的目标执行结果。
26、作为本申请实施例一种可选的实施方式,所述调用单元,还用于响应于所述目标业务执行指令,确定所述目标业务对应的多个子任务;针对所述目标业务对应的多个子任务中的每一个子任务,创建与所述每一个子任务对应的子线程以及所述子线程的线程变量。
27、作为本申请实施例一种可选的实施方式,所述调用单元,具体用于基于预设对应关系,通过所述各个子线程对应的标识获取所述各个子线程对应的所述线程变量;所述预设对应关系中包括所述各个子线程的标识以及所述各个子线程的所述线程变量的对应关系。
28、作为本申请实施例一种可选的实施方式,所述传输单元,具体用于基于数据回调机制,将所述各个子线程对应的所述线程变量中所述执行状态信息传输至所述主线程。
29、作为本申请实施例一种可选的实施方式,所述传输单元,具体用于获取所述各个子线程对应的数据回调接口;基于所述数据回调接口,结合所述数据回调机制将所述各个子线程对应的所述线程变量中所述执行结果传输至所述主线程。
30、作为本申请实施例一种可选的实施方式,所述调用单元,还用于为所述多个子任务对应的所述子线程,注册对应的数据回调接口。
31、作为本申请实施例一种可选的实施方式,所述数据同步装置还包括输出单元,具体用于将所述目标执行结果输出,并将所述各个子线程对应的所述线程变量中的数据清除。
32、第三方面,本申请实施例提供了一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在执行计算机程序时,使得所述电子设备实现上述任一项实施例所述的数据同步方法。
33、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述任一项实施例所述的数据同步方法。
34、本申请实施例提供的数据同步方法具体为:接收目标业务执行指令;响应于所述目标业务执行指令,调用所述目标业务对应的主线程的多个子线程异步执行所述目标业务对应的任务,获取所述各个子线程对本文档来自技高网...
【技术保护点】
1.一种数据同步方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述接收目标业务执行指令之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述获取所述各个子线程对应的所述执行状态信息,并存储至对应的线程变量中;包括:
4.根据权利要求1所述的方法,其特征在于,所述将所述各个子线程对应的所述线程变量中所述执行状态信息传输至所述主线程,包括:
5.根据权利要求4所述的方法,其特征在于,所述基于数据回调机制,将所述各个子线程对应的所述线程变量中所述执行状态信息传输至所述主线程,包括:
6.根据权利要求2所述的方法,其特征在于,在所述针对所述目标业务对应的多个子任务中的每一个子任务,创建与所述每一个子任务对应的子线程以及所述子线程的线程变量之后,所述方法包括:
7.根据权利要求1所述的方法,其特征在于,所述对所述各个子线程对应的所述线程变量中所述执行状态信息进行整理分析,获取所述目标业务的目标执行结果之后,所述方法还包括:
8.一种数据同步装置,其特征在于,包括:
...【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述接收目标业务执行指令之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述获取所述各个子线程对应的所述执行状态信息,并存储至对应的线程变量中;包括:
4.根据权利要求1所述的方法,其特征在于,所述将所述各个子线程对应的所述线程变量中所述执行状态信息传输至所述主线程,包括:
5.根据权利要求4所述的方法,其特征在于,所述基于数据回调机制,将所述各个子线程对应的所述线程变量中所述执行状态信息传输至所述主线程,包括:
6.根据权利要求2所述的方法,其特征在于,在所述针对所述目标业务对应的多个子任务中的每一个子任务,创建与...
【专利技术属性】
技术研发人员:叶文广,乔旺龙,
申请(专利权)人:天云融创数据科技北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。