一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

变量跨线程操作方法及装置

2023-01-16 22:21:19 来源:中国专利 TAG:

1.本技术涉及软件开发技术领域,具体而言,涉及一种变量跨线程操作方法及装置。


背景技术:

2.在软件开发过程中,通常允许多线程并发控制,但当多个线程同时对一个可共享资源变量进行增、删、改、查操作,或者多个线程同时调用一个函数时,多个线程并发控制可能会导致数据不准确,且各个线程之间极易产生冲突。
3.目前,相关操作系统在面对多线程同时操作一个可共享资源变量或者同时调用一个函数,需要耗费大量的时间成本。例如,当各个线程上的开发团队在进行研发工作时,需要就实际需求时间、函数接口、功能实现和调用情况等进行反复沟通,因此需要耗费大量的时间成本和人力成本,且无法在保证各线程安全的情况下,降低一个可共享资源变量或者一个函数在多线程中执行时不同线程之间的耦合度,提升线程的执行效率。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本技术实施例提供了一种变量跨线程操作方法及装置,以至少解决变量跨线程操作时无法降低多线程之间的耦合度,导致各个线程的执行效率较低的技术问题。
6.根据本技术实施例的一个方面,提供了一种变量跨线程操作方法,包括:第一线程响应于对目标变量进行操作的目标操作指令,判断自身是否具有对目标变量进行操作的目标权限;在不具有目标权限时,第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,其中,目标操作请求用于请求第二线程对目标变量进行操作;第一线程接收第二线程依据目标协议反馈的对目标变量的目标操作结果。
7.可选地,目标协议中至少包括操作请求标志和操作完成标志,其中,第一状态的操作请求标志用于反映存在第一线程向第二线程发送目标操作请求,第二状态的操作请求标志用于反映不存在第一线程向第二线程发送目标操作请求;第一状态的操作完成标志用于反映第二线程已完成对目标变量的操作,第二状态的操作完成标志用于反映第二线程未完成对目标变量的操作。
8.可选地,第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,包括:第一线程确定具有目标权限的第二线程;第一线程依据目标协议向第二线程发送目标操作请求,并将与第一线程对应的操作请求标志设置为第一状态。
9.可选地,在第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求之后,还包括:第二线程通过预设的第一循环监测程序周期性读取操作请求标志;在操作请求标志为第一状态时,第二线程接收第一线程依据目标协议发送的目标操作请求,并对目标变量进行操作,得到目标操作结果;第二线程依据目标协议向第一线程反馈目标操作结果,并将与第二线程对应的操作完成标志设置为第二状态。
10.可选地,在第二线程通过预设的第一循环监测程序周期性读取操作请求标志之
后,还包括:第二线程在读取到与多个第一线程对应的多个操作请求标志均为第一状态时,依据预设规则对接收到的多个第一线程发送的多个目标操作请求进行排序,并依次处理多个目标操作请求;其中,预设规则包括以下之一:基于每个目标操作请求的接收时间对多个目标操作请求进行排序,基于每个目标操作请求对应的目标变量的优先级对多个目标操作请求进行排序。
11.可选地,第一线程接收第二线程依据目标协议反馈的对目标变量的目标操作结果,包括:第一线程通过预设的第二循环监测程序周期性读取操作完成标志;在操作完成标志的状态为第一状态时,第一线程接收第二线程依据目标协议反馈的目标操作结果。
12.可选地,第一线程在具有目标权限时,直接对目标变量进行操作。
13.根据本技术实施例的另一方面,还提供了一种变量跨线程操作装置,包括:响应模块,用于响应于对目标变量进行操作的目标操作指令,判断第一线程是否具有对目标变量进行操作的目标权限;发送模块,用于在第一线程不具有目标权限时,依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,其中,目标操作请求用于请求第二线程对目标变量进行操作;接收模块,用于接收第二线程依据目标协议反馈的对目标变量的目标操作结果。
14.根据本技术实施例的另一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的程序,其中,非易失性存储介质所在设备通过运行该程序执行上述的变量跨线程操作方法。
15.根据本技术实施例的另一方面,还提供了一种电子设备,该电子设备包括:存储器和处理器,其中,存储器中存储有计算机程序,处理器被配置为通过计算机程序执行上述的变量跨线程操作方法。
16.在本技术实施例中,第一线程响应于对目标变量进行操作的目标操作指令,判断自身是否具有对目标变量进行操作的目标权限;在不具有目标权限时,第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,其中,目标操作请求用于请求第二线程对目标变量进行操作;第一线程接收第二线程依据目标协议反馈的对目标变量的目标操作结果,从而通过目标协议将第一线程上不具有操作权限的变量在第二线程上进行操作,避免在软件开发过程中多方团队的反复沟通,节省交流时间成本,进而解决了变量跨线程操作时无法降低多线程之间的耦合度,导致各个线程的执行效率较低的技术问题。
附图说明
17.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1是根据本技术实施例的一种可选的变量跨线程操作方法的流程示意图;图2是根据本技术实施例的一种可选的变量跨线程操作的示意图;图3是根据本技术实施例的一种可选的变量跨线程操作装置的结构示意图。
具体实施方式
18.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是
本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
19.需要说明的是,本技术的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
20.实施例1在软件开发过程中,当多个线程同时操作一个可共享资源变量,或者是多个线程同时调用一个函数时,多个线程并发控制可能会导致数据不准确,且各线程之间会产生冲突。
21.近些年来,mac操作系统内核规定多线程同时执行时,只有主线程可以写显卡。若在多方合作时主线程和从线程的开发团队都有写显卡的需求,那么主线程上执行代码块的开发团队需要不断和从线程上执行代码块的开发团队进行沟通,从而了解从线程上执行代码块的开发团队的实际需求的具体时间,函数接口、功能实现和调用情况,再帮助从线程执行相应的代码块,整个过程不仅会耗费大量的交流时间成本和人力成本,还会大大增加软件开发过程中的合作难度。
22.而windows操作系统自带的消息机制可以解决上述问题,但windows操作系统的弊端在于,其必须有对应的窗口支持,且消息队列在资源紧缺时,容易出现消息丢失。
23.因此,上述两种操作系统均无法保证各线程安全的情况下,降低一个可共享资源变量或者一个函数在多线程中执行时不同线程之间的耦合度,并提升各线程的执行效率。
24.为了解决上述问题,本技术实施例提供了一种变量跨线程操作方法,该方法在应用于从线程侧。其中,在进行变量跨线程调用操作时,第一线程和第二线程采用统一的目标协议。当第一线程上不具有对目标变量的操作权限时,可以依据目标协议向第二线程准确地发送目标操作请求,并接收第二线程依据目标协议反馈的操作结果,整个操作过程可以有效避免在软件开发过程中多方团队的反复沟通,节省交流时间成本,进而解决了变量跨线程操作时无法降低多线程之间的耦合度,导致各个线程的执行效率较低的技术问题。
25.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
26.图1是根据本技术实施例的一种可选的变量跨线程操作方法的流程示意图,如图1所示,该方法至少包括步骤s102-s106,其中:步骤s102,第一线程响应于对目标变量进行操作的目标操作指令,判断自身是否具有对目标变量进行操作的目标权限。
27.其中,上述第一线程为从线程,目标变量可以为目标代码块,目标操作指令可以是在目标代码块上对可共享变量进行增、查、删、改等操作,或者在目标代码块上调用一个函
数。
28.具体地,在对从线程上的目标代码块进行操作时,首先需要判断该从线程是否具有对目标代码块进行操作的目标权限。
29.若从线程具有对目标代码块进行操作的目标权限时,直接在从线程上对目标代码块进行操作。例如,操作指令是读函数操作,且该从线程上具有读函数的权限时,直接在从线程上对目标代码块执行读函数操作。
30.若从线程不具有对代码块进行操作的目标权限时,比如操作指令是写显卡操作,而写显卡操作通常只能在主线程上执行,因此,需要通过步骤s104实现写显卡操作。
31.步骤s104,在不具有目标权限时,第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,其中,目标操作请求用于请求第二线程对目标变量进行操作。
32.其中,第二线程可以但不仅限于为主线程。
33.具体地,目标协议中至少包括操作请求标志和操作完成标志,其中,第一状态的操作请求标志用于反映存在第一线程向第二线程发送目标操作请求,第二状态的操作请求标志用于反映不存在第一线程向第二线程发送目标操作请求;第一状态的操作完成标志用于反映第二线程已完成对目标变量的操作,第二状态的操作完成标志用于反映第二线程未完成对目标变量的操作。
34.作为一种可选的实施方式,在第一线程不具有目标权限时,第一线程首先确定具有目标权限的第二线程;第一线程再依据目标协议向第二线程发送目标操作请求,并将与第一线程对应的操作请求标志设置为第一状态。
35.而在第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求之后,具有目标权限的第二线程为了准确地读取第一线程发送的目标操作请求,第二线程还可以通过预设的第一循环监测程序周期性读取操作请求标志;在操作请求标志为第一状态时,第二线程接收第一线程依据目标协议发送的目标操作请求,并对目标变量进行操作,得到目标操作结果;第二线程依据目标协议向第一线程反馈目标操作结果,并将与第二线程对应的操作完成标志设置为第二状态。
36.举例而言,当前有两个开发团队合作开发一个软件,前端开发团队1的代码块在主线程上执行,绘图插件开发团队2的代码块在从线程上执行,且前端开发团队1和绘图插件开发团队2均有写显卡的需求,由于只有主线程才可以执行写显卡操作,因此,绘图插件开发团队2所在的从线程上不具有操作权限。
37.图2示出了一种可选的变量跨线程操作的示意图,其中,由于绘图插件开发团队2需要在代码块2-4上执行写显卡操作,但绘图插件开发团队2所在从线程的代码块2-4不具有执行写显卡操作的操作权限,因此,绘图插件开发团队2所在的从线程依据预设的目标协议向具有目标权限的主线程发送对代码块2-4的操作请求,从而避免前端开发团队1和绘图插件开发团队2的前期沟通,了解绘图插件开发团队2的实际需求的具体时间,函数接口、功能实现和变量调用等情况,再帮助绘图插件开发团队2完成代码块2-4的操作,有效降低了软件开发中的合作难度。
38.首先,绘图插件开发团队2所在的从线程不具有写显卡的操作权限时,确定具有写显卡的操作权限的主线程;接着依据目标协议向主线程发送在主线程上运行代码块2-4的
操作请求,同时主线程为了避免消息丢失,且可以准确读取到从线程的操作请求,主线程通过第一循环监测程序周期性读取操作请求标志flag_act,当操作请求标志flag_act设置为true(即第一状态)时,主线程接收绘图插件开发团队2所在的从线程依据目标协议向主线程发送运行代码块2-4的操作请求;然后主线程依据目标协议运行代码块2-4,得到相应的操作结果;最后,主线程依据目标协议向绘图插件开发团队2所在的从线程反馈相应的操作结果,同时,将与绘图插件开发团队2所在的从线程对应的操作完成标志flag_down设置为true,此时该从线程完成对代码块2-4的操作。
39.作为另一种可选的实施方式,第二线程在读取到与多个第一线程对应的多个操作请求标志均为第一状态时,依据预设规则对接收到的多个第一线程发送的多个目标操作请求进行排序,并依次处理多个目标操作请求;其中,预设规则包括以下之一:基于每个目标操作请求的接收时间对多个目标操作请求进行排序,基于每个目标操作请求对应的目标变量的优先级对多个目标操作请求进行排序。
40.例如,若软件开发过程中,多个开发团队所在的从线程均需要执行写显卡操作时,则多个从线程需要向主线程上发送操作请求,此时,主线程会接收到与多个从线程对应的多个操作请求,同时将主线程的操作请求标志flag_act设置为true。
41.为了避免多个从线程之间发成冲突,造成数据丢失,可以依据主线程接收到的多个操作请求的先后时间对多个操作请求进行排序,按照从前到后的顺序依次处理接收到的操作请求。另外,当同一时间接收到多个操作请求时,可以按照对应代码块的操作优先级顺序依次处理多个操作请求。
42.步骤s106,第一线程接收第二线程依据目标协议反馈的对目标变量的目标操作结果。
43.可选地,第一线程通过预设的第二循环监测程序周期性读取操作完成标志;在操作完成标志的状态为第一状态时,第一线程接收第二线程依据目标协议反馈的目标操作结果。
44.具体地,如图2所示,为了实时了解主线程是否完成运行代码块的操作请求,绘图插件开发团队2所在的从线程可以依据第二循环监测程序周期性读取操作完成标志flag_down,并在操作完成标志flag_down为true时,绘图插件开发团队2所在的从线程接收主线程依据目标协议反馈的操作结果。
45.在本技术实施例中,通过接收目标操作指令,其中,目标操作指令用于对目标变量进行操作;在从线程不具有对目标变量进行操作的权限时,依据预设的目标协议向主线程发送目标操作请求,其中,主线程具有对目标变量进行操作的权限,目标操作请求用于请求主线程对目标变量进行操作;接收主线程依据目标协议反馈的对目标变量的目标操作结果,从而通过目标协议将从线程上不具有操作权限的变量在主线程上进行操作,避免在软件开发过程中多方团队的反复沟通,节省交流时间成本,进而解决了变量跨线程操作时无法降低多线程之间的耦合度,导致各个线程的执行效率较低的技术问题。
46.实施例2根据本技术实施例,还提供了一种用于实现上述变量跨线程操作方法的变量跨线程操作装置,如图3所示,该变量跨线程操作装置中至少包括响应模块31,发送模块32和接收模块33,其中:
响应模块31,用于响应于对目标变量进行操作的目标操作指令,判断第一线程是否具有对目标变量进行操作的目标权限。
47.其中,上述第一线程为从线程,目标变量可以为目标代码块,目标操作指令可以是在目标代码块上对可共享变量进行增、查、删、改等操作,或者在目标代码块上同时调用一个函数。
48.具体地,响应模块31在对目标代码块进行操作时,首先需要判断该从线程是否具有对目标代码块进行操作的目标权限。
49.若从线程具有对目标代码块进行操作的目标权限时,直接在从线程上对目标代码块进行操作。例如,操作指令是读函数操作,且该从线程上具有读函数的权限时,直接在从线程上对目标代码块执行读函数操作。
50.若从线程不具有对代码块进行操作的目标权限时,比如操作指令是写显卡操作,而写显卡操作通常只能在主线程上执行,因此,需要通过发送模块32实现写显卡操作。
51.发送模块32,用于在第一线程不具有目标权限时,依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,其中,目标操作请求用于请求第二线程对目标变量进行操作。
52.其中,第二线程可以但不仅限于为主线程。
53.具体地,目标协议中至少包括操作请求标志和操作完成标志,其中,第一状态的操作请求标志用于反映存在第一线程向第二线程发送目标操作请求,第二状态的操作请求标志用于反映不存在第一线程向第二线程发送目标操作请求;第一状态的操作完成标志用于反映第二线程已完成对目标变量的操作,第二状态的操作完成标志用于反映第二线程未完成对目标变量的操作。
54.作为一种可选的实施方式,在第一线程不具有目标权限时,发送模块32首先确定具有目标权限的第二线程;第一线程再依据目标协议向第二线程发送目标操作请求,并将与第一线程对应的操作请求标志设置为第一状态。
55.而在第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求之后,具有目标权限的第二线程为了准确地读取第一线程发送的目标操作请求,第二线程还可以通过预设的第一循环监测程序周期性读取操作请求标志;在操作请求标志为第一状态时,第二线程接收第一线程依据目标协议发送的目标操作请求,并对目标变量进行操作,得到目标操作结果;第二线程依据目标协议向第一线程反馈目标操作结果,并将与第二线程对应的操作完成标志设置为第二状态。
56.作为另一种可选的实施方式,发送模块32在读取到与多个第一线程对应的多个操作请求标志均为第一状态时,依据预设规则对接收到的多个第一线程发送的多个目标操作请求进行排序,并依次处理多个目标操作请求;其中,预设规则包括以下之一:基于每个目标操作请求的接收时间对多个目标操作请求进行排序,基于每个目标操作请求对应的目标变量的优先级对多个目标操作请求进行排序。
57.例如,若软件开发过程中,多个开发团队所在的从线程均需要执行写显卡操作时,则多个从线程需要向主线程上发送操作请求,此时,主线程会接收到与多个从线程对应的多个操作请求,同时将主线程的操作请求标志flag_act设置为true。
58.为了避免多个从线程之间发成冲突,造成数据丢失,可以依据主线程接收到的多
个操作请求的先后时间对多个操作请求进行排序,按照从前到后的顺序依次处理接收到的操作请求。另外,当同一时间接收到多个操作请求时,可以按照对应代码块的操作优先级顺序依次处理多个操作请求。
59.接收模块33,用于接收第二线程依据目标协议反馈的对目标变量的目标操作结果。
60.可选地,为了实时了解主线程是否完成运行目标代码块的操作请求,接收模块33通过预设的第二循环监测程序周期性读取操作完成标志;在操作完成标志的状态为第一状态时,接收模块33接收第二线程依据目标协议反馈的目标操作结果。
61.需要说明的是,本技术实施例中的变量跨线程操作装置中的各模块与实施例1中的变量跨线程操作方法的各实施步骤一一对应,由于实施例1中已经进行了详尽的描述,本实施例中部分未体现的细节可以参考实施例1,在此不再过多赘述。
62.实施例3根据本技术实施例,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的程序,其中,非易失性存储介质所在设备通过运行该程序执行实施例1中的变量跨线程操作方法。
63.具体地,非易失性存储介质所在设备通过运行该程序执行实现以下步骤:第一线程响应于对目标变量进行操作的目标操作指令,判断自身是否具有对目标变量进行操作的目标权限;在不具有目标权限时,第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,其中,目标操作请求用于请求第二线程对目标变量进行操作;第一线程接收第二线程依据目标协议反馈的对目标变量的目标操作结果。
64.可选地,目标协议中至少包括操作请求标志和操作完成标志,其中,第一状态的操作请求标志用于反映存在第一线程向第二线程发送目标操作请求,第二状态的操作请求标志用于反映不存在第一线程向第二线程发送目标操作请求;第一状态的操作完成标志用于反映第二线程已完成对目标变量的操作,第二状态的操作完成标志用于反映第二线程未完成对目标变量的操作。
65.可选地,第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,包括:第一线程确定具有目标权限的第二线程;第一线程依据目标协议向第二线程发送目标操作请求,并将与第一线程对应的操作请求标志设置为第一状态。
66.可选地,在第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求之后,还包括:第二线程通过预设的第一循环监测程序周期性读取操作请求标志;在操作请求标志为第一状态时,第二线程接收第一线程依据目标协议发送的目标操作请求,并对目标变量进行操作,得到目标操作结果;第二线程依据目标协议向第一线程反馈目标操作结果,并将与第二线程对应的操作完成标志设置为第二状态。
67.可选地,在第二线程通过预设的第一循环监测程序周期性读取操作请求标志之后,还包括:第二线程在读取到与多个第一线程对应的多个操作请求标志均为第一状态时,依据预设规则对接收到的多个第一线程发送的多个目标操作请求进行排序,并依次处理多个目标操作请求;其中,预设规则包括以下之一:基于每个目标操作请求的接收时间对多个目标操作请求进行排序,基于每个目标操作请求对应的目标变量的优先级对多个目标操作请求进行排序。
68.可选地,第一线程接收第二线程依据目标协议反馈的对目标变量的目标操作结果,包括:第一线程通过预设的第二循环监测程序周期性读取操作完成标志;在操作完成标志的状态为第一状态时,第一线程接收第二线程依据目标协议反馈的目标操作结果。
69.实施例4根据本技术实施例,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行实施例1中的变量跨线程操作方法。
70.具体地,程序运行时执行实现以下步骤:第一线程响应于对目标变量进行操作的目标操作指令,判断自身是否具有对目标变量进行操作的目标权限;在不具有目标权限时,第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,其中,目标操作请求用于请求第二线程对目标变量进行操作;第一线程接收第二线程依据目标协议反馈的对目标变量的目标操作结果。
71.可选地,目标协议中至少包括操作请求标志和操作完成标志,其中,第一状态的操作请求标志用于反映存在第一线程向第二线程发送目标操作请求,第二状态的操作请求标志用于反映不存在第一线程向第二线程发送目标操作请求;第一状态的操作完成标志用于反映第二线程已完成对目标变量的操作,第二状态的操作完成标志用于反映第二线程未完成对目标变量的操作。
72.可选地,第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,包括:第一线程确定具有目标权限的第二线程;第一线程依据目标协议向第二线程发送目标操作请求,并将与第一线程对应的操作请求标志设置为第一状态。
73.可选地,在第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求之后,还包括:第二线程通过预设的第一循环监测程序周期性读取操作请求标志;在操作请求标志为第一状态时,第二线程接收第一线程依据目标协议发送的目标操作请求,并对目标变量进行操作,得到目标操作结果;第二线程依据目标协议向第一线程反馈目标操作结果,并将与第二线程对应的操作完成标志设置为第二状态。
74.可选地,在第二线程通过预设的第一循环监测程序周期性读取操作请求标志之后,还包括:第二线程在读取到与多个第一线程对应的多个操作请求标志均为第一状态时,依据预设规则对接收到的多个第一线程发送的多个目标操作请求进行排序,并依次处理多个目标操作请求;其中,预设规则包括以下之一:基于每个目标操作请求的接收时间对多个目标操作请求进行排序,基于每个目标操作请求对应的目标变量的优先级对多个目标操作请求进行排序。
75.可选地,第一线程接收第二线程依据目标协议反馈的对目标变量的目标操作结果,包括:第一线程通过预设的第二循环监测程序周期性读取操作完成标志;在操作完成标志的状态为第一状态时,第一线程接收第二线程依据目标协议反馈的目标操作结果。
76.实施例5根据本技术实施例,还提供了一种电子设备,该电子设备包括:存储器和处理器,其中,存储器中存储有计算机程序,处理器被配置为通过计算机程序执行实施例1中的变量跨线程操作方法。
77.具体地,处理器被配置为通过计算机程序执行实现以下步骤:第一线程响应于对目标变量进行操作的目标操作指令,判断自身是否具有对目标变量进行操作的目标权限;
在不具有目标权限时,第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,其中,目标操作请求用于请求第二线程对目标变量进行操作;第一线程接收第二线程依据目标协议反馈的对目标变量的目标操作结果。
78.可选地,目标协议中至少包括操作请求标志和操作完成标志,其中,第一状态的操作请求标志用于反映存在第一线程向第二线程发送目标操作请求,第二状态的操作请求标志用于反映不存在第一线程向第二线程发送目标操作请求;第一状态的操作完成标志用于反映第二线程已完成对目标变量的操作,第二状态的操作完成标志用于反映第二线程未完成对目标变量的操作。
79.可选地,第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求,包括:第一线程确定具有目标权限的第二线程;第一线程依据目标协议向第二线程发送目标操作请求,并将与第一线程对应的操作请求标志设置为第一状态。
80.可选地,在第一线程依据预设的目标协议向具有目标权限的第二线程发送目标操作请求之后,还包括:第二线程通过预设的第一循环监测程序周期性读取操作请求标志;在操作请求标志为第一状态时,第二线程接收第一线程依据目标协议发送的目标操作请求,并对目标变量进行操作,得到目标操作结果;第二线程依据目标协议向第一线程反馈目标操作结果,并将与第二线程对应的操作完成标志设置为第二状态。
81.可选地,在第二线程通过预设的第一循环监测程序周期性读取操作请求标志之后,还包括:第二线程在读取到与多个第一线程对应的多个操作请求标志均为第一状态时,依据预设规则对接收到的多个第一线程发送的多个目标操作请求进行排序,并依次处理多个目标操作请求;其中,预设规则包括以下之一:基于每个目标操作请求的接收时间对多个目标操作请求进行排序,基于每个目标操作请求对应的目标变量的优先级对多个目标操作请求进行排序。
82.可选地,第一线程接收第二线程依据目标协议反馈的对目标变量的目标操作结果,包括:第一线程通过预设的第二循环监测程序周期性读取操作完成标志;在操作完成标志的状态为第一状态时,第一线程接收第二线程依据目标协议反馈的目标操作结果。
83.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
84.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
85.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
86.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
87.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
88.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
89.以上仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献