一种数据处理方法、装置、存储介质及服务器制造方法及图纸

技术编号:35278926 阅读:16 留言:0更新日期:2022-10-22 12:20
本申请实施例公开了一种数据处理方法、装置、存储介质及服务器,方法包括:接收操作请求,根据操作请求的请求类型确定出多个候选函数;当检测到主线程调用多个候选函数中的目标函数时,判断目标函数中是否存在与其他函数相同的目标参数;当目标函数中存在与其他函数相同的目标参数时,获取目标参数在目标函数中对应的目标环境类型;获取目标参数在其他函数中对应的其他环境类型;当目标环境类型与其他环境类型不相同时,控制从线程调用目标函数并对目标函数进行处理。通过将不影响其他函数运行的目标函数从主线程中分离出来,并控制从线程调用目标函数,进而降低主线程的负载,提高主线程的处理效率。线程的处理效率。线程的处理效率。

【技术实现步骤摘要】
一种数据处理方法、装置、存储介质及服务器


[0001]本申请涉及计算机领域,具体涉及一种数据处理方法、装置、计算机可读存储介质及服务器。

技术介绍

[0002]近年来,伴随计算机设备技术的发展以及普及,涌现出越来越多的大型多人在线游戏(Massive Multiplayer Online,MMO)供用户体验,MMO对应的服务器采用多线程的架构,人工地将独立的模块或者功能分配到不同的线程上执行,比如一个线程实现游戏场景相关功能,一个线程负责收发网络数据等。这种架构使得不同的任务能够同时执行,提升了系统的吞吐量,支持大量玩家同时在线进行游戏。
[0003]现有技术中,除了各个子模块使用独立的线程执行外,服务端往往还需要一个主线程(main thread)负责游戏玩法逻辑相关的业务。主线程响应各个子模块的回调函数,修改玩家数据、游戏数据、响应玩家请求以及执行定时器等玩法相关的业务逻辑,而这些业务逻辑大多是采用脚本语言来编写。由于主线程只有一个,所有的脚本层函数顺序执行,因此主线程的负载往往对服务端的性能起了决定性的作用。
[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]第二控制模块,用于若所述目标函数的函数类型以及存在所述目标参数的其他函数的函数类型中不存在指定类型函数,则控制所述从线程调用所述目标函数并对所述目标函数进行处理。
[0040]在一些实施例中,所述装置还包括:
[0041]第三控制模块,用于当所述目标函数中不存在与其他函数相同的目标参数时,控制所述从线程调用所述目标函数并对所述目标函数进行处理。
[0042]一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述数据处理方法中的步骤。
[0043]一种服务器,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述数据处理方法中的步骤。
[0044]本申请实施例通过接收操作请求,根据所述操作请求的请求类型确定出多个候选函数;当检测到主线程调用多个候选函数中的目标函数时,判断目标函数中是否存在与其他函数相同的目标参数,所述其他函数为所述多个候选函数中除所述目标函数以外的其他函数;当所述目标函数中存在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:接收操作请求,根据所述操作请求的请求类型确定出多个候选函数;当检测到主线程调用多个候选函数中的目标函数时,判断所述目标函数中是否存在与其他函数相同的目标参数,所述其他函数为所述多个候选函数中除所述目标函数以外的其他函数;当所述目标函数中存在与其他函数相同的目标参数时,获取所述目标参数在所述目标函数中对应的目标环境类型;获取所述目标参数在其他函数中对应的其他环境类型,所述其他环境类型为所述目标参数在除所述目标函数外其他存在所述目标参数的候选函数中对应的环境类型;当所述目标环境类型与所述其他环境类型不相同时,控制从线程调用所述目标函数并对所述目标函数进行处理。2.根据权利要求1所述的数据处理方法,其特征在于,所述当所述目标环境类型与所述其他环境类型不相同时,控制从线程调用所述目标函数并对所述目标函数进行处理的步骤,包括:当所述目标环境类型与所述其他环境类型不相同时,将所述目标函数封装为目标任务,所述目标任务包括执行所述目标函数所需的参数以及参数之间的执行逻辑;获取所述目标函数中每一参数对应的环境类型,并确定每一参数在环境类型下对应的环境值;将所述目标任务分配至每一环境值对应的等待队列;控制从线程从每一所述等待队列中获取所述目标任务,并按照所述目标任务中的所述执行逻辑对所述目标函数的参数进行处理。3.根据权利要求2所述的数据处理方法,其特征在于,所述控制从线程从所述等待队列中获取所述目标任务,并按照所述目标任务中的所述执行逻辑对所述目标函数的参数进行处理的步骤,包括:确定所述目标任务是否为每一环境值对应的等待队列中的首个待执行任务;当所述目标任务为每一环境值对应的等待队列中的首个待执行任务时,控制从线程从每一所述等待队列中获取所述目标任务,并按照所述目标任务中的所述执行逻辑对所述目标函数的参数进行处理。4.根据权利要求2或3任一项所述的数据处理方法,其特征在于,所述从线程包括多个从线程,所述控制从线程从每一所述等待队列中获取所述目标任务,并按照所述目标任务中的所述执行逻辑对所述目标函数的参数进行处理的步骤,包括:判断所述多个从线程中是否存在空闲从线程;若所述多个从线程中存在空闲从线程,则控制所述空闲从线程从每一所述等待队列中获取所述目标任务,并按照所述目标任务中的所述执行逻辑对所述目标函数的参数进行处理。5.根据权利要求4所述的数据处理方法,其特征在于,所述方法...

【专利技术属性】
技术研发人员:杨永添
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

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

1