数据处理方法与系统的制作方法_2

文档序号:9217077阅读:来源:国知局
数据,例如,来自客户端的数据为经过加密的数据,则可以通过所述2级线程对加密的数据进行解密操作,得到解密后的数据;又例如,来自客户端的数据为经过压缩的数据,则可以通过所述2级线程对压缩的数据进行解压操作,得到解压后的数据。
[0039]通过所述2级线程还可以执行客户端连接承载,例如,传输控制协议(Transmiss1n Control Protocol, TCP)或一种拥塞控制协议(Scalable TCP,SCTP)。
[0040]优选地,所述步骤202可以为:
[0041]通过多个所述2级线程对来自客户端的数据进行Bare和/或编码解码和/或检测,得到处理结果。
[0042]优选地,多个所述2级线程的数量可以为当前逻辑核心数量的2倍。
[0043]为充分利用硬件资源(线程不跨中央处理器逻辑核心),2级线程的数量会一定规模地大于当前逻辑核心数量。越耗时的任务,并发度越大,线程数越多。其中,逻辑核心为中央处理器的物理核心,经过超线程之后得到的核心。
[0044]步骤204,通过多个所述2级线程将得到的每个处理结果存放在一个任务队列中。
[0045]所述2级线程每处理完一个数据,得到数据结果之后,将数据结果存放在一个特殊的任务队列中,等待3级线程进行处理。
[0046]优选地,本发明实施例还可以包括:
[0047]步骤21,通过预置数量的所述2级线程管理所有客户端的网络连接。
[0048]也就是说,所有的客户端连接分布于固定个数的2级线程中。
[0049]步骤206,在通过多个所述2级线程处理来自客户端的数据,得到处理结果的同时,通过与多个所述2级线程并行的多个所述3级线程加载逻辑脚本对所述处理结果进行处理。
[0050]在通过所述2级线程处理数据的同时,还可以通过多个与2级线程并行的3级线程加载逻辑脚本对2级线程处理后得到的数据,进行处理。也就是说,2级线程处理后得到的数据会继续由3级线程进行处理,并且,2级线程和3级线程可以并行处理各自需要处理的数据。例如,2级线程对A数据进行处理,得到A数据结果,3级线程对A数据结果进行处理。在2级线程对A数据进行处理的同时,3级线程可以对B数据结果进行处理,B数据结果可以为之前2级线程对B数据进行处理得到。
[0051 ] 优选地,所述步骤206可以为:
[0052]通过闲置的与多个所述2级线程并行的所述3级线程加载逻辑脚本对所述存放在任务队列中的所述处理结果进行处理。
[0053]优选地,多个所述3级线程的数量可以为所述当前逻辑核心数量的4倍。
[0054]每个3级线程有一个LUA state (LUA为一种脚本语言,LUA state为LUA的一种结构体),每个3级线程相互独立,而不是从一个LUA state派生出的栈。所以每个3级线程需要独立地加载逻辑脚本,整个全局区也是独立的。所以LUA state之间的数据共享,需要服务提供特殊的接口。由于LUA的单线程属性,才做这样的处理。同时也可以确保垃圾回收的稳定性,在一个LUA state崩溃时,不影响其它3级线程,只要单独重启这个就可以。3级线程不绑定客户端连接,也不会造成掉线
[0055]优选地,本发明实施例还可以通过一个所述O级线程对至少一个所述I级线程、多个所述2级线程和多个所述3级线程中的至少一个线程进行管理,具体地,通过一个所述O级线程的预设时钟对至少一个所述I级线程、多个所述2级线程和多个所述3级线程中的至少一个线程进行周期性管理。
[0056]优选地,可以通过一个所述O级线程的预设时钟对至少一个所述I级线程、多个所述2级线程和多个所述3级线程中的至少一个线程进行回收和/或阻塞。
[0057]需要说明的是,本发明实施例中的服务器可以为游戏服务器,游戏服务器中设置的多级线程可以用于并行处理与游戏客户端相关联的游戏逻辑的一系列任务和数据。当连接游戏服务器的游戏客户端数量巨大时,针对游戏客户端的不同任务或者数据,利用游戏服务器中的多级线程并行处理,提高了游戏服务器处理游戏客户端的任务或数据的效率。
[0058]综上所述,本发明实施例在服务器端设置多级线程,多级线程包括2级线程和3级线程,其中,2级线程为3级线程的上层线程,并且,2级线程可以与3级线程并行执行各自的任务,在通过多个2级线程处理来自客户端的数据,得到处理结果的同时,通过与多个2级线程并行的多个3级线程加载逻辑脚本对2级线程处理后的处理结果进行处理。通过本发明实施例中的技术方案,缓解了服务器端的处理任务压力,降低了服务器端的资源占用率,提高了数据处理效率。
[0059]实施例三
[0060]详细介绍本发明实施例提供的一种数据处理系统。
[0061]所述系统可以应用于设置有多级线程的服务器,所述多级线程可以包括2级线程和3级线程,其中,所述2级线程可以为所述3级线程的上层线程。
[0062]参照图3,示出了本发明实施例三提供的一种数据处理系统的结构框图。
[0063]所述系统可以包括'2级处理模块300,3级处理模块302。
[0064]下面分别详细介绍各模块的功能以及各模块之间的关系。
[0065]2级处理模块300,用于通过多个所述2级线程处理来自客户端的数据,得到处理结果。
[0066]3级处理模块302,用于在所述2级处理模块300通过多个所述2级线程处理来自客户端的数据,得到处理结果的同时,通过与多个所述2级线程并行的多个所述3级线程加载逻辑脚本对所述处理结果进行处理。
[0067]综上所述,本发明实施例在服务器端设置多级线程,多级线程包括2级线程和3级线程,其中,2级线程为3级线程的上层线程,并且,2级线程可以与3级线程并行执行各自的任务,在通过多个2级线程处理来自客户端的数据,得到处理结果的同时,通过与多个2级线程并行的多个3级线程加载逻辑脚本对2级线程处理后的处理结果进行处理。通过本发明实施例中的技术方案,缓解了服务器端的处理任务压力,降低了服务器端的资源占用率,提高了数据处理效率。
[0068]实施例四
[0069]详细介绍本发明实施例提供的一种数据处理系统。
[0070]所述系统可以应用于设置有多级线程的服务器,所述多级线程可以包括O级线程、I级线程、2级线程和3级线程,其中,所述O级线程可以为所述I级线程的上层线程,所述I级线程可以为所述2级线程的上层线程,所述2级线程可以为所述3级线程的上层线程。
[0071]参照图4,示出了本发明实施例四提供的一种数据处理系统的结构框图。
[0072]所述系统可以包括:0级处理模块400,I级处理模块402,2级处理模块404,结果存放模块406,3级处理模块408,网络连接管理模块410。
[0073]下面分别详细介绍各模块的功能以及各模块之间的关系。
[0074]所述O级处理模块400,用于通过一个所述O级线程对至少一个所述I级线程、多个所述2级线程和多个所述3级线程中的至少一个线程进行管理。具体地,所述O级处理模块400可以通过一个所述O级线程的预设时钟对至少一个所述I级线程、多个所述2级线程和多个所述3级线程中的至少一个线程进行周期性管理。
[0075]优选地,所述O级处理模块400可以通过一个所述O级线程的预设时钟对至少一个所述I级线程、多个所述2级线程和多个所述3级线程中的至少一个线程进行回收和/或阻塞。
[0076]所述I级处理模块402,用于在所述2级处理模块404通过多个所述2级线程处理来自客户端的数据,得到处理结果之前,通过至少一个所述I级线程进行客户端的网络连接的服务监听。
[0077]优选地,所述I级处理模块402通过至少一个所述I级线程中设置的多个
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1