基于多线程实现状态计算和行为交互的方法和系统与流程

文档序号:39226911发布日期:2024-08-28 23:01阅读:11来源:国知局
基于多线程实现状态计算和行为交互的方法和系统与流程

本发明涉及计算机开发的,特别涉及基于多线程实现状态计算和行为交互的方法和系统。


背景技术:

1、帧同步类游戏,比如帧同步射击类游戏,在高频状态切换中,存在大量状态的计算,不同实体之间也需要大量的行为交互。如果只在主线程上实现状态的计算和行为交互,会造成设备卡顿和发烫等问题,还会降低设备线程的使用和造成浪费,同时还会导致不同设备无法同步运行游戏,从而出现不同设备游戏不同步的情况。


技术实现思路

1、针对现有技术存在的缺陷,本发明提供了基于多线程实现状态计算和行为交互的方法和系统,其对游戏运行过程的需求进行分析拆解,得到若干状态计算任务,并确定所有状态计算任务的计算属性信息,对状态进行定性标定;监听与分析所有子线程各自的运行状态数据,得到所有子线程各自的运行属性信息,并结合计算属性信息,对子线程进行状态计算任务执行可行性测试,得到子线程与状态计算任务之间的分配对映关系,以此对子线程分配相应的状态计算任务,对主线程接收来自子线程的计算结果分析,确定子线程当前对接的实体与其他实体的交互需求,从而利用主线程执行不同实体之间的行为交互,利用子线程实现每个实体状态数据计算和利用主线程基于计算后的状态数据进行不同实体之间行为交互,能够实现针对状态机系统的拆解,保证计算和交互在安全情况下进行,降低帧同步类游戏卡顿和发烫等问题,实现设备多核线程的使用,保证不同设备能够同步运行游戏和提高设备线程使用效率。

2、本发明提供基于多线程实现状态计算和行为交互的方法,包括如下步骤:

3、步骤s1,获取游戏运行过程中的需求,所述需求进行分析拆解,得到与游戏运行匹配的若干状态计算任务;对所有状态计算任务进行识别,确定所有状态计算任务的计算属性信息;

4、步骤s2,监听与分析所有子线程各自的运行状态数据,得到所有子线程各自的运行属性信息;基于所述计算属性信息和所述运行属性信息,对所述子线程进行关于状态计算任务执行可行性测试,得到所有子线程与所有状态计算任务之间的分配对映关系;

5、步骤s3,基于所述分配对映关系,对所述子线程分配相应的状态计算任务;将所有子线程对相应状态计算任务的计算结果上传至主线程,对所述主线程接收的计算结果进行分析,确定所述子线程当前对接的实体与其他实体的交互需求;

6、步骤s4,基于所述交互需求,执行相应实体之间的行为交互;基于参与所述行为交互的实体的工作状态信息,调整所述主线程与相应子线程的连接状态。

7、在本技术公开的一个实施例中,在所述步骤s1中,获取游戏运行过程中的需求,所述需求进行分析拆解,得到与游戏运行匹配的若干状态计算任务;对所有状态计算任务进行识别,确定所有状态计算任务的计算属性信息,包括:

8、对帧同步类游戏在运行过程中的高频切换动作进行监听,得到所述帧同步类游戏的帧切换需求,对所述帧切换需求进行分析拆解,得到所述帧同步类游戏进行高频切换动作过程中关于不同游戏属性变换的若干状态计算任务;

9、对所有状态计算任务进行任务数据内容和数据量识别,确定所有状态计算任务各自的数据内容类型信息和数据计算量信息,以此作为所述计算属性信息。

10、在本技术公开的一个实施例中,在所述步骤s2中,监听与分析所有子线程各自的运行状态数据,得到所有子线程各自的运行属性信息;基于所述计算属性信息和所述运行属性信息,对所述子线程进行关于状态计算任务执行可行性测试,得到所有子线程与所有状态计算任务之间的分配对映关系,包括:

11、监听所有子线程的运行日志,得到所有子线程当前各自执行的算法运行状态数据;对所述算法运行状态数据进行分析,得到所述子线程的算法运行性能信息,以此作为所述运行属性信息;

12、将所述计算属性信息包含的数据内容类型信息和数据计算量信息与所述算法运行性能信息进行对比,以此对每个子线程进行关于状态计算任务执行可行性测试,得到每个子线程执行每个状态计算任务对应的执行效率;再基于所述执行效率,得到所有子线程与所有状态计算任务之间的分配对映关系。

13、在本技术公开的一个实施例中,在所述步骤s3中,基于所述分配对映关系,对所述子线程分配相应的状态计算任务;将所有子线程对相应状态计算任务的计算结果上传至主线程,对所述主线程接收的计算结果进行分析,确定所述子线程当前对接的实体与其他实体的交互需求,包括:

14、基于所述分配对映关系,构建所有子线程各自与其对映的状态计算任务之间的通道,并基于所述通道对所有子线程分别分配相应的状态计算任务;

15、对所有子线程分别进行任务处理进度识别,判断所述子线程是否已经完成相应状态计算任务的计算;若已完成,则构建所述子线程与主线程之间的连接链路,并通过所述连接链路将相应状态计算任务的计算结果上传至所述主线程;对所述主线程接收的计算结果进行分析,得到所述子线程当前对接的实体与其他实体之间的状态切换行为交互需求。

16、在本技术公开的一个实施例中,在所述步骤s4中,基于所述交互需求,执行相应实体之间的行为交互;基于参与所述行为交互的实体的工作状态信息,调整所述主线程与相应子线程的连接状态,包括:

17、基于所述交互需求,确定执行实体之间的状态切换行为交互类型信息,以此执行相应实体之间的状态切换行为交互;对参与所述状态切换行为交互的实体进行工作状态识别,得到相应实体的行为交互执行进度,以此判断所述状态切换行为交互是否执行完毕;若是,则保持所述主线程与相应子线程当前的连接状态不变;若否,则中断所述主线程与相应子线程的连接状态。

18、本发明还提供基于多线程实现状态计算和行为交互的系统,包括:

19、需求拆解模块,用于获取游戏运行过程中的需求,所述需求进行分析拆解,得到与游戏运行匹配的若干状态计算任务;

20、状态计算识别模块,用于对所有状态计算任务进行识别,确定所有状态计算任务的计算属性信息;

21、子线程运行识别模块,用于听与分析所有子线程各自的运行状态数据,得到所有子线程各自的运行属性信息;

22、状态计算执行测试模块,用于基于所述计算属性信息和所述运行属性信息,对所述子线程进行关于状态计算任务执行可行性测试,得到所有子线程与所有状态计算任务之间的分配对映关系;

23、实体交互需求确定模块,用于基于所述分配对映关系,对所述子线程分配相应的状态计算任务;将所有子线程对相应状态计算任务的计算结果上传至主线程,对所述主线程接收的计算结果进行分析,确定所述子线程当前对接的实体与其他实体的交互需求;

24、行为交互监测与调整模块,用于基于所述交互需求,执行相应实体之间的行为交互;基于参与所述行为交互的实体的工作状态信息,调整所述主线程与相应子线程的连接状态。

25、在本技术公开的一个实施例中,所述需求拆解模块用于获取游戏运行过程中的需求,所述需求进行分析拆解,得到与游戏运行匹配的若干状态计算任务,包括:

26、对帧同步类游戏在运行过程中的高频切换动作进行监听,得到所述帧同步类游戏的帧切换需求,对所述帧切换需求进行分析拆解,得到所述帧同步类游戏进行高频切换动作过程中关于不同游戏属性变换的若干状态计算任务;

27、所述状态计算识别模块用于对所有状态计算任务进行识别,确定所有状态计算任务的计算属性信息,包括:

28、对所有状态计算任务进行任务数据内容和数据量识别,确定所有状态计算任务各自的数据内容类型信息和数据计算量信息,以此作为所述计算属性信息。

29、在本技术公开的一个实施例中,所述子线程运行识别模块用于听与分析所有子线程各自的运行状态数据,得到所有子线程各自的运行属性信息,包括:

30、监听所有子线程的运行日志,得到所有子线程当前各自执行的算法运行状态数据;对所述算法运行状态数据进行分析,得到所述子线程的算法运行性能信息,以此作为所述运行属性信息;

31、所述状态计算执行测试模块用于基于所述计算属性信息和所述运行属性信息,对所述子线程进行关于状态计算任务执行可行性测试,得到所有子线程与所有状态计算任务之间的分配对映关系,包括:

32、将所述计算属性信息包含的数据内容类型信息和数据计算量信息与所述算法运行性能信息进行对比,以此对每个子线程进行关于状态计算任务执行可行性测试,得到每个子线程执行每个状态计算任务对应的执行效率;再基于所述执行效率,得到所有子线程与所有状态计算任务之间的分配对映关系。

33、在本技术公开的一个实施例中,所述实体交互需求确定模块用于基于所述分配对映关系,对所述子线程分配相应的状态计算任务;将所有子线程对相应状态计算任务的计算结果上传至主线程,对所述主线程接收的计算结果进行分析,确定所述子线程当前对接的实体与其他实体的交互需求,包括:

34、基于所述分配对映关系,构建所有子线程各自与其对映的状态计算任务之间的通道,并基于所述通道对所有子线程分别分配相应的状态计算任务;

35、对所有子线程分别进行任务处理进度识别,判断所述子线程是否已经完成相应状态计算任务的计算;若已完成,则构建所述子线程与主线程之间的连接链路,并通过所述连接链路将相应状态计算任务的计算结果上传至所述主线程;对所述主线程接收的计算结果进行分析,得到所述子线程当前对接的实体与其他实体之间的状态切换行为交互需求。

36、在本技术公开的一个实施例中,所述行为交互监测与调整模块用于基于所述交互需求,执行相应实体之间的行为交互;基于参与所述行为交互的实体的工作状态信息,调整所述主线程与相应子线程的连接状态,包括:

37、基于所述交互需求,确定执行实体之间的状态切换行为交互类型信息,以此执行相应实体之间的状态切换行为交互;对参与所述状态切换行为交互的实体进行工作状态识别,得到相应实体的行为交互执行进度,以此判断所述状态切换行为交互是否执行完毕;若是,则保持所述主线程与相应子线程当前的连接状态不变;若否,则中断所述主线程与相应子线程的连接状态。

38、相比于现有技术,该基于多线程实现状态计算和行为交互的方法和系统对游戏运行过程的需求进行分析拆解,得到若干状态计算任务,并确定所有状态计算任务的计算属性信息,对状态进行定性标定;监听与分析所有子线程各自的运行状态数据,得到所有子线程各自的运行属性信息,并结合计算属性信息,对子线程进行状态计算任务执行可行性测试,得到子线程与状态计算任务之间的分配对映关系,以此对子线程分配相应的状态计算任务,对主线程接收来自子线程的计算结果分析,确定子线程当前对接的实体与其他实体的交互需求,从而利用主线程执行不同实体之间的行为交互,利用子线程实现每个实体状态数据计算和利用主线程基于计算后的状态数据进行不同实体之间行为交互,能够实现针对状态机系统的拆解,保证计算和交互在安全情况下进行,降低帧同步类游戏卡顿和发烫等问题,实现设备多核线程的使用,保证不同设备能够同步运行游戏和提高设备线程使用效率。

39、本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

40、下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1