本发明涉及数据处理,具体而言,涉及一种多线程数据处理方法、电子设备及存储介质。
背景技术:
1、随着信息技术的发展,多线程下对共享数据进行读写操作,能大大提高数据处理的效率。多线程对数据进行读写的操作过程中时,虽然能够提高数据编辑的效率,但是也带来了新的问题。
2、例如,不同线程对应有各自的寄存器,在需要读取数据时,通常是先在自身对应的寄存器中读数据,若寄存器中不存在需要读取的数据,再到内存中读取数据。若一个线程对自身的寄存器中的变量计算修改后,还没及时更新到内存中,而另一个线程读取同一变量时,变量的值仍然是在更新前的值。即,变量的值未能得到及时更新,便被其他线程读取,容易造成数据冲突或导致数据缺乏时效性。
技术实现思路
1、有鉴于此,本申请实施例的目的在于提供一种多线程数据处理方法、电子设备及存储介质,能够改善在多线程数据读写过程中容易造成数据冲突或数据缺乏时效性的问题。
2、为实现上述技术目的,本申请采用的技术方案如下:
3、第一方面,本申请实施例提供了一种多线程数据处理方法,应用于电子设备,所述电子设备包括第一处理器、第一寄存模块、第二处理器、第二寄存模块及内存模块,所述第一处理器通过所述第一寄存模块与所述内存模块电连接,所述第二处理器通过所述第二寄存模块与所述内存模块电连接,所述方法包括:
4、在接收到数据修改指令时,所述第一处理器对所述第一寄存模块中的指定变量的数据进行修改,以将所述指定变量当前的第一数据修改为第二数据;
5、当所述指定变量的所述第一数据被修改为第二数据时,所述第一处理器基于缓存一致性机制,将所述内存模块中的所述指定变量的值更新为所述第二数据,并通知所述第二寄存模块中预存的值为所述第一数据的所述指定变量失效。
6、结合第一方面,在一些可选的实施方式中,所述方法还包括:
7、当所述第二处理器接收到用于读取所述指定变量的操作指令时,从所述内存模块中读取值已被更新为所述第二数据的所述指定变量。
8、结合第一方面,在一些可选的实施方式中,所述方法还包括:
9、所述第二处理器将所述第二寄存模块中的所述指定变量的值更新为所述第二数据,并撤销表征所述指定变量失效的标志。
10、结合第一方面,在一些可选的实施方式中,所述第一处理器基于缓存一致性机制,将所述内存模块中的所述指定变量的值更新为所述第二数据,包括:
11、所述第一处理器基于volatile关键字,将所述内存模块中的所述指定变量的值更新为所述第二数据,其中,所述volatile为基于缓存一致性机制的关键字。
12、结合第一方面,在一些可选的实施方式中,所述方法还包括:
13、所述第一处理器基于线程锁机制,对所述内存模块中的共享存储资源施加写锁,以对所述共享存储资源执行写操作,并在完成所述写操作时,解除所述写锁。
14、第二方面,本申请实施例还提供一种电子设备,所述电子设备包括第一处理器、第一寄存模块、第二处理器、第二寄存模块及内存模块,所述第一处理器通过所述第一寄存模块与所述内存模块电连接,所述第二处理器通过所述第二寄存模块与所述内存模块电连接;
15、在接收到数据修改指令时,所述第一处理器用于对所述第一寄存模块中的指定变量的数据进行修改,以将所述指定变量当前的第一数据修改为第二数据;
16、当所述指定变量的所述第一数据被修改为第二数据时,所述第一处理器还用于基于缓存一致性机制,将所述内存模块中的所述指定变量的值更新为所述第二数据,并通知所述第二寄存模块中预存的值为所述第一数据的所述指定变量失效。
17、结合第二方面,在一些可选的实施方式中,当所述第二处理器接收到用于读取所述指定变量的操作指令时,所述第二处理器用于从所述内存模块中读取值已被更新为所述第二数据的所述指定变量。
18、结合第二方面,在一些可选的实施方式中,所述第二处理器还用于将所述第二寄存模块中的所述指定变量的值更新为所述第二数据,并撤销表征所述指定变量失效的标志。
19、结合第二方面,在一些可选的实施方式中,所述第一处理器还用于基于volatile关键字,将所述内存模块中的所述指定变量的值更新为所述第二数据,其中,所述volatile为基于缓存一致性机制的关键字。
20、第三方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述的方法。
21、采用上述技术方案的发明,具有如下优点:
22、在本申请提供的技术方案中,第一处理器在接收到数据修改指令时,第一处理器对第一寄存模块中的指定变量的数据进行修改,以将指定变量当前的第一数据修改为第二数据;当指定变量的第一数据被修改为第二数据时,第一处理器基于缓存一致性机制,将内存模块中的指定变量的值更新为第二数据,并通知第二寄存模块中预存的值为第一数据的指定变量失效。如此,在指定变量的值被修改后,基于缓存一致性机制可以使得第二寄存模块中的未被更新的指定变量失效,从而避免第二寄存模块中的未被更新的指定变量被采用,另外,在读数据的过程中,无需设置读的线程锁,从而有利于提高数据处理效率,避免数据冲突,以及避免第二寄存模块读取的数据为未更新的失效数据。
1.一种多线程数据处理方法,其特征在于,应用于电子设备,所述电子设备包括第一处理器、第一寄存模块、第二处理器、第二寄存模块及内存模块,所述第一处理器通过所述第一寄存模块与所述内存模块电连接,所述第二处理器通过所述第二寄存模块与所述内存模块电连接,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述第一处理器基于缓存一致性机制,将所述内存模块中的所述指定变量的值更新为所述第二数据,包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.一种电子设备,其特征在于,所述电子设备包括第一处理器、第一寄存模块、第二处理器、第二寄存模块及内存模块,所述第一处理器通过所述第一寄存模块与所述内存模块电连接,所述第二处理器通过所述第二寄存模块与所述内存模块电连接;
7.根据权利要求6所述的电子设备,其特征在于,当所述第二处理器接收到用于读取所述指定变量的操作指令时,所述第二处理器用于从所述内存模块中读取值已被更新为所述第二数据的所述指定变量。
8.根据权利要求7所述的电子设备,其特征在于,所述第二处理器还用于将所述第二寄存模块中的所述指定变量的值更新为所述第二数据,并撤销表征所述指定变量失效的标志。
9.根据权利要求6所述的电子设备,其特征在于,所述第一处理器还用于基于volatile关键字,将所述内存模块中的所述指定变量的值更新为所述第二数据,其中,所述volatile为基于缓存一致性机制的关键字。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1-5中任一项所述的方法。