线程间的操作指令同步系统及方法技术方案

技术编号:38002406 阅读:9 留言:0更新日期:2023-06-30 10:16
本申请公开了一种线程间的操作指令同步系统及方法,属于计算机技术领域。所述系统包括:第一应用程序和第二应用程序,第一应用程序用于在第一线程运行,第二应用程序用于在第二线程运行;第一应用程序,用于在运行过程中调起运行第二应用程序;第一应用程序,还用于在第二线程中,注册第一应用程序的函数对象,第一应用程序的函数对象用于指示第一应用程序中的业务函数;第二应用程序,用于调用第一应用程序的函数对象,以触发运行函数对象指示的业务函数,业务函数封装有第一应用程序向第二应用程序同步的操作指令。本申请可避免第一应用程序在同步操作指令过程中持续等待,导致无法继续执行后续的业务逻辑的问题。无法继续执行后续的业务逻辑的问题。无法继续执行后续的业务逻辑的问题。

【技术实现步骤摘要】
线程间的操作指令同步系统及方法


[0001]本申请涉及计算机
,特别涉及一种线程间的操作指令同步系统及方法。

技术介绍

[0002]在游戏开发场景中,游戏场景编辑器用于实现对游戏中的虚拟环境以及虚拟对象的编辑,游戏引擎用于根据游戏场景编辑器提供的相关数据执行渲染。
[0003]游戏场景编辑器和游戏引擎运行在不同的线程上,游戏场景编辑器启动之后会调起运行游戏引擎,并且游戏场景编辑器需要频繁地与游戏引擎进行操作指令同步,这会涉及不同线程之间的操作指令同步。相关技术中,开发人员会在游戏场景编辑器和游戏引擎的线程中互相暴露同步接口,游戏场景编辑器在需要向游戏引擎同步操作指令时,会调用游戏引擎的同步接口,并将需要同步的操作指令通过同步接口传输至游戏引擎。游戏引擎获取到同步的操作指令后,会通过调用游戏场景编辑器的同步接口,向游戏场景编辑器通知操作指令同步结果。游戏场景编辑器获取到游戏引擎反馈的操作指令同步结果后,会继续执行后续的业务逻辑。
[0004]在游戏引擎业务繁忙的情况下,当游戏场景编辑器通过调用游戏引擎的同步接口向游戏引擎同步操作指令时,游戏引擎可能无法及时调用场景编辑器的同步接口向游戏场景编辑器反馈操作指令同步结果。为保证游戏引擎已准确获取到同步的操作指令,游戏场景编辑器需要持续等待游戏引擎向其反馈操作指令同步结果,导致游戏场景编辑器无法继续执行后续的业务逻辑。

技术实现思路

[0005]本申请提供了一种线程间的操作指令同步系统及方法,可以避免第一应用程序在同步操作指令过程中持续等待,导致无法继续执行后续的业务逻辑的问题。所述技术方案如下:
[0006]根据本申请的一方面,提供了一种线程间的操作指令同步系统,所述系统包括:第一应用程序和第二应用程序,所述第一应用程序用于在第一线程运行,所述第二应用程序用于在第二线程运行,所述第一线程与所述第二线程不同;
[0007]所述第一应用程序,用于在运行过程中调起运行所述第二应用程序;
[0008]所述第一应用程序,还用于在所述第二应用程序对应的所述第二线程中,注册所述第一应用程序的函数对象,所述第一应用程序的函数对象用于指示所述第一应用程序中的业务函数;
[0009]所述第二应用程序,用于调用所述第一应用程序的函数对象,以触发运行所述第一应用程序的函数对象指示的所述业务函数,所述业务函数封装有所述第一应用程序向所述第二应用程序同步的操作指令。
[0010]根据本申请的另一方面,提供了一种线程间的操作指令同步方法,所述方法应用于第二应用程序,所述方法包括:
[0011]根据第一应用程序的调起指令,在第二线程中启动运行,所述第一应用程序用于在第一线程运行,所述第一线程与所述第二线程不同;
[0012]接收所述第一应用程序在所述第二线程中注册的所述第一应用程序的函数对象,所述第一应用程序的函数对象用于指示所述第一应用程序中的业务函数;
[0013]调用所述第一应用程序的函数对象,以触发运行所述第一应用程序的函数对象指示的所述业务函数,所述业务函数封装有所述第一应用程序向所述第二应用程序同步的操作指令。
[0014]根据本申请的另一方面,提供了一种线程间的操作指令同步方法,所述方法应用于第一应用程序,所述方法包括:
[0015]在所述第一应用程序的运行过程中,调起运行第二应用程序,所述第一应用程序用于在第一线程运行;
[0016]在所述第二应用程序对应的第二线程中,注册所述第一应用程序的函数对象,所述第二应用程序用于在所述第二线程运行,所述第一线程与所述第二线程不同,所述函数对象用于指示所述第一应用程序中的业务函数;
[0017]其中,在所述第二应用程序调用所述第一应用程序的函数对象的情况下,所述函数对象用于触发运行所述业务函数,所述业务函数封装有所述第一应用程序向所述第二应用程序同步的操作指令。
[0018]根据本申请的另一方面,提供了一种线程间的操作指令同步装置,所述装置包括:
[0019]运行模块,用于根据第一应用程序的调起指令,在第二线程中启动运行,所述第一应用程序用于在第一线程运行,所述第一线程与所述第二线程不同;
[0020]接收模块,用于接收所述第一应用程序在所述第二线程中注册的所述第一应用程序的函数对象,所述第一应用程序的函数对象用于指示所述第一应用程序中的业务函数;
[0021]调用模块,用于调用所述第一应用程序的函数对象,以触发运行所述第一应用程序的函数对象指示的所述业务函数,所述业务函数封装有所述第一应用程序向所述第二应用程序同步的操作指令。
[0022]在一个可选的设计中,所述第一应用程序的函数对象封装有所述业务函数的内存地址;所述调用模块,用于:
[0023]调用所述第一应用程序的函数对象,以通过所述内存地址获取所述业务函数,并触发运行所述业务函数。
[0024]在一个可选的设计中,所述第一应用程序的函数对象封装有回调函数,所述回调函数对应有至少一个指针;所述调用模块,用于:
[0025]调用所述第一应用程序的函数对象,以运行所述回调函数;
[0026]根据所述回调函数对应的所述至少一个指针,触发运行所述至少一个指针在所述第一应用程序中指示的所述业务函数;
[0027]其中,所述至少一个指针中的每个指针,指向所述第一应用程序中的一个业务函数的内存地址。
[0028]在一个可选的设计中,所述接收模块,用于:
[0029]在所述第二线程中创建函数存储区;
[0030]接收所述第一应用程序的函数对象,所述函数对象是所述第一应用程序在所述第
二线程的所述函数存储区中注册的。
[0031]在一个可选的设计中,所述装置提供有注册接口;所述接收模块,用于:
[0032]通过所述注册接口接收所述第一应用程序的函数对象,所述函数对象是所述第一应用程序通过所述注册接口,在所述第二线程的所述函数存储区中注册的。
[0033]在一个可选的设计中,所述业务函数用于同步数据;所述调用模块,用于:
[0034]调用所述第一应用程序的函数对象,以触发运行所述第一应用程序的函数对象指示的所述业务函数,得到所述业务函数的运行结果数据。
[0035]根据本申请的另一方面,提供了一种线程间的操作指令同步装置,所述装置包括:
[0036]调起模块,用于在所述装置的运行过程中,调起运行第二应用程序,所述装置用于在第一线程运行;
[0037]注册模块,用于在所述第二应用程序对应的第二线程中,注册所述装置的函数对象,所述第二应用程序用于在所述第二线程运行,所述第一线程与所述第二线程不同,所述函数对象用于指示所述装置中的业务函数;
[0038]其中,在所述第二应用程序调用所述装置的函数对象的情况下,所述函数对象用于触发运行所述业务函数,所述业务函数封装有所述第一应用程序向所述第二应用程序同步的操作指令。
[0039]在一个可选的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线程间的操作指令同步系统,其特征在于,所述系统包括:第一应用程序和第二应用程序,所述第一应用程序用于在第一线程运行,所述第二应用程序用于在第二线程运行,所述第一线程与所述第二线程不同;所述第一应用程序,用于在运行过程中调起运行所述第二应用程序;所述第一应用程序,还用于在所述第二应用程序对应的所述第二线程中,注册所述第一应用程序的函数对象,所述第一应用程序的函数对象用于指示所述第一应用程序中的业务函数;所述第二应用程序,用于调用所述第一应用程序的函数对象,以触发运行所述第一应用程序的函数对象指示的所述业务函数,所述业务函数封装有所述第一应用程序向所述第二应用程序同步的操作指令。2.根据权利要求1所述的系统,其特征在于,所述第一应用程序的函数对象封装有所述业务函数的内存地址;所述第二应用程序,用于调用所述第一应用程序的函数对象,以通过所述内存地址获取所述业务函数,并触发运行所述业务函数。3.根据权利要求2所述的系统,其特征在于,所述第一应用程序的函数对象封装有回调函数,所述回调函数对应有至少一个指针;所述第二应用程序,用于:调用所述第一应用程序的函数对象,以运行所述回调函数;根据所述回调函数对应的所述至少一个指针,触发运行所述至少一个指针在所述第一应用程序中指示的所述业务函数;其中,所述至少一个指针中的每个指针,指向所述第一应用程序中的一个业务函数的内存地址。4.根据权利要求1至3任一所述的系统,其特征在于,所述第二应用程序,还用于在所述第二线程中创建函数存储区;所述第一应用程序,用于在所述第二线程的所述函数存储区中,注册所述第一应用程序的函数对象。5.根据权利要求4所述的系统,其特征在于,所述第二应用程序提供有注册接口;所述第一应用程序,用于通过调用所述注册接口,以在所述第二线程的所述函数存储区中,注册所述第一应用程序的函数对象。6.根据权利要求5所述的系统,其特征在于,所述第二应用程序,用于在被所述第一应用程序调起运行时,在所述第二线程中创建所述函数存储区;所述第二应用程序,还用于在结束运行时清除所述第二线程的所述函数存储区。7.根据权利要求1至3任一所述的系统,其特征在于,所述业务函数用于同步数据;所述第二应用程序,...

【专利技术属性】
技术研发人员:成宇苏磊张之栋甘世俊
申请(专利权)人:不鸣科技杭州有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1