CN107147641A - 一种信息处理方法、系统及计算机存储介质 - Google Patents
一种信息处理方法、系统及计算机存储介质 Download PDFInfo
- Publication number
- CN107147641A CN107147641A CN201710326266.9A CN201710326266A CN107147641A CN 107147641 A CN107147641 A CN 107147641A CN 201710326266 A CN201710326266 A CN 201710326266A CN 107147641 A CN107147641 A CN 107147641A
- Authority
- CN
- China
- Prior art keywords
- association
- journey
- task
- task queue
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种信息处理方法、系统及计算机存储介质,所述信息处理方法包括:第一协程执行获取函数以访问预设的任务队列;第二协程根据接收的指令生产任务,并将所述任务放入所述任务队列;所述第一协程从所述任务队列中获取任务,并处理所述任务。本发明实施例中各协程之间独立运行,无需加锁,提高了运行效率,能够保证信息处理的实时性以及高性能,提高服务器对客户端的反应时间,降低时延,提升用户体验。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种信息处理方法、系统及计算机存储介质。
背景技术
现阶段,随着计算机和网络技术的不断发展,基于网页的游戏方式也不断发展,游戏玩家也不断的增加,传统的网页游戏服务器架构难以满足需求。
网页游戏是基于浏览器的多人在线互动游戏,当游戏人数过多时,由于每个游戏用户都要同时与服务器进行信息的交互,会导致服务器CPU和I/O资源消耗极大,同时信息量过载时还会产生传输时延,影响游戏用户的体验。因此,如何保证服务器的高性能以及游戏过程的实时性,是本领域技术人员亟需解决的问题。
发明内容
本发明实施例提供一种信息处理方法、系统及计算机存储介质,通过采用多个协程协同工作,能够保证实时性和高性能需求。
本发明实施例第一方面提供了一种信息处理方法,应用于主协程、第一协程以及第二协程,所述主协程用于调度所述第一协程以及第二协程,所述方法包括:
第一协程执行获取函数以访问预设的任务队列;
第二协程根据接收的指令生产任务,并将所述任务放入所述任务队列;
所述第一协程从所述任务队列中获取任务,并处理所述任务。
可选的,所述方法还包括:
若所述任务队列为空,则所述第一协程向所述主协程发送等待信息;
所述主协程在接收到所述等待信息之后,调度所述第二协程运行。
可选的,所述方法还包括:
在将所述任务放入所述任务队列之后,所述第二协程根据所述任务队列向所述主协程发送通知信息,所述通知信息用于标识所述任务队列的变化;
所述主协程识别所述通知信息,并根据所述通知信息调度所述第一协程运行。
可选的,所述第一协程对应游戏服务器,所述第二协程对应游戏客户端;或者所述第一协程对应游戏客户端,所述第二协程对应游戏服务器。
可选的,所述任务队列包括游戏客户端请求的游戏逻辑。
本发明实施例第二方面提供了一种信息处理系统,包括:主协程、第一协程以及第二协程,其中,所述主协程用于调度所述第一协程以及第二协程;
所述第一协程用于执行获取函数以访问预设的任务队列;
所述第二协程用于根据接收的指令生产任务,并将所述任务放入所述任务队列;
所述第一协程还用于从所述任务队列中获取任务,并处理所述任务。
可选的,所述第一协程还用于当所述任务队列为空时,向所述主协程发送等待信息;
所述主协程还用于在接收到所述等待信息之后,调度所述第二协程运行。
可选的,所述第二协程还用于在将所述任务放入所述任务队列之后,根据所述任务队列向所述主协程发送通知信息,所述通知信息用于标识所述任务队列的变化;
所述主协程还用于识别所述通知信息,并根据所述通知信息调度所述第一协程运行。
可选的,所述第一协程对应游戏服务器,所述第二协程对应游戏客户端;或者所述第一协程对应游戏客户端,所述第二协程对应游戏服务器。
可选的,所述任务队列包括游戏客户端请求的游戏逻辑。
本发明实施例第三方面提供了一种信息处理系统,包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序以实现:运行主协程、第一协程以及第二协程,其中,运行所述主协程用于调度所述第一协程以及第二协程,所述处理器用于:
运行所述第一协程以用于执行获取函数以访问预设的任务队列;
运行所述第二协程以用于根据接收的指令生产任务,并将所述任务放入所述任务队列;
运行所述第一协程以用于从所述任务队列中获取任务,并处理所述任务。
可选的,所述处理器还用于运行所述第一协程以用于当所述任务队列为空时,向所述主协程发送等待信息;
运行所述主协程以用于在接收到所述等待信息之后,调度所述第二协程运行。
可选的,所述处理器还用于运行所述第二协程以在将所述任务放入所述任务队列之后,根据所述任务队列向所述主协程发送通知信息,所述通知信息用于标识所述任务队列的变化;
运行所述主协程以用于识别所述通知信息,并根据所述通知信息调度所述第一协程运行。
可选的,所述第一协程对应游戏服务器,所述第二协程对应游戏客户端;或者
所述第一协程对应游戏客户端,所述第二协程对应游戏服务器。
可选的,所述任务队列包括游戏客户端请求的游戏逻辑。
本发明实施例第四方面提供了一种计算机存储介质,所述计算机存储介质可存储有程序,所述程序执行时包括第一方面中所述信息处理方法的步骤。
实施本发明实施例,具有如下有益效果:
本发明实施例中,通过采用协程的架构,由主协程分别调度第一协程、第二协程运行,合理分配各个协程之间的资源,各协程之间独立运行,无需加锁,提高了运行效率,能够保证信息处理的实时性以及高性能,提高服务器对客户端的反应时间,降低时延,提升用户体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种信息处理方法的实施环境图。
图2为本发明实施例提供的一种信息处理方法第一实施例的流程图。
图3为本发明实施例提供的一种信息处理方法第二实施例的流程图。
图4为本发明实施例提供的一种信息处理方法第三实施例的流程图。
图5为本发明实施例提供的一种信息处理系统第一实施例的结构示意图。
图6为本发明实施例提供的一种信息处理系统第二实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本发明实施例提供的一种信息处理方法的实施环境图。该信息处理方法应用于游戏系统,可选的,该游戏系统可以为网页游戏、手机游戏等游戏形式,该游戏系统包括:服务端10以及客户端20。所述服务端10包括数据库服务器101、运维服务器102以及多个游戏服务器103,所述运维服务器102以及多个游戏服务器103与数据库服务器101通信连接,所述运维服务器102用于提供运维功能,所述多个游戏服务器103用于提供各种游戏功能,比如:用户登录、用户聊天、游戏主城区域、竞技场区域以及副本等。客户端20可以有多种形式,比如可以是用户通过电脑浏览器以web形式登录的网页游戏,也可以是用户使用手机下载app登录的手机游戏,还可以是通过电脑下载应用程序登录的网络游戏等,本发明实施例并不以此为限。客户端20通过访问服务器10,实现相应的数据交互,获取游戏数据,并交互控制信息或者其他信息。
可选的,在其他实施方式中,所述游戏系统还可以包括运营系统,所述运营系统可包括游戏网站以及游戏账务记录。
可选的,在其他实施方式中,在服务端10以及客户端20之间还可以包括网关,客户端20与网关连接,网关可用于隔离游戏服务器与玩家,保护游戏服务器不受外部攻击,网关用于将客户端20的访问请求转发至服务器10,并将相应的处理结果返回至客户端20。
当客户端20数量较多时,由于每个客户端20在游戏过程中都需要与服务器10交互数据,此时,数据量较多不仅会导致拥塞,还会导致服务器CPU和I/O资源消耗极大,同时信息量过载时还会产生传输时延,影响游戏用户的体验。本发明实施例基于此,提出一种信息处理方法,通过采用协程架构,使得各个协程之间独立运行,保证实时性和高性能。
图2为本发明实施例提供的一种信息处理方法第一实施例的流程图。该信息处理方法应用于主协程、第一协程以及第二协程,所述主协程用于调度所述第一协程以及第二协程,可以理解的是,所述第一协程以及第二协程的个数可以为多个,所述方法包括以下步骤:
步骤S201中,第一协程执行获取函数以访问预设的任务队列。
具体的,协程可以认为是轻量级的线程,在协程运行过程中,各个协程也拥有自己的寄存器上下文和栈,在协程进行调度切换时,被切换的协程的寄存器上下文和栈将进行保存,当该协程切回时,会恢复先前保存的寄存器上下文和栈,从而可以实现多个协程之间的快速切换,提高运行效率。
在本实施例中,首先第一协程执行获取函数以访问预设的任务队列。由于在游戏过程中,客户端与服务器之间是需要交互数据的,通信是双向的。所述第一协程可以对应游戏客户端的数据流,也可以对应游戏服务器的数据流。当所述第一协程对应游戏客户端时,在用户执行相应的命令了之后,第一协程根据用户命令发出获取函数以获取相应的结果,根据该获取函数访问对应的任务队列;所述任务队列包括包括游戏客户端请求的游戏逻辑。所述游戏逻辑可以是各种游戏动作、游戏指令等。当所述第一协程对应服务器时,第一协程用于访问任务队列,以读取客户端的请求。
步骤S202中,第二协程根据接收的指令生产任务,并将所述任务放入所述任务队列。
具体的,当所述第一协程对应游戏客户端时,第二协程对应服务器,此时第二协程根据接收到的指令生产任务,所述任务包括对应游戏逻辑的响应结果,并将任务放入任务队列,以供第一协程访问;当所述第一协程对应服务器时,所述第二协程对应客户端,此时第二协程接收的指令为游戏玩家发出的指令,第二协程根据玩家的指令生成相应的请求,根据请求生产任务,并放入任务队列。
步骤S203中,所述第一协程从所述任务队列中获取任务,并处理所述任务。
具体的,当任务队列中存在任务时,第一协程从所述任务队列中获取任务,并处理获取到的任务。可以理解的是,本实施例中,任务队列可以由多个,对应于不同的游戏逻辑。由于不同的游戏形式包括不同的游戏内容、游戏单元,因此游戏逻辑也多种多样,本发明实施例并不以此为限。
可选的,本发明实施例中,基于Google公司开源的Protobuf技术实现,从而实现客户端和服务器的协同,在客户端和服务器的通信过程中,将数据对象序列为二进制数据,相对于现有的采用XML技术能够缩小数据包大小,提高传输效率。
上述可知,本发明实施例中的信息处理方法,通过采用协程的架构,由主协程分别调度第一协程、第二协程运行,合理分配各个协程之间的资源,各协程之间独立运行,无需加锁,提高了运行效率,能够保证信息处理的实时性以及高性能,提高服务器对客户端的反应时间,降低时延,提升用户体验。
图3为本发明实施例提供的一种信息处理方法第二实施例的流程图。对比图2所示的第一实施例,本实施例中,还包括在任务队列为空时的相关步骤,该信息处理方法包括以下步骤S301-S305。
在步骤S301中,第一协程执行获取函数以访问预设的任务队列。
在步骤S302中,若所述任务队列为空,则所述第一协程向所述主协程发送等待信息。
具体的,当任务队列为空时,此时第一协程执行的获取函数并不返回结果,而是由第一协程向主协程发送等待信息,所述等待信息用于向主协程申请当有任务进入任务队列时触发第一协程,在发出等待信息之后,第一协程挂起自身,并在挂起之后,将占用的CPU资源返回给主协程。
不同于传统的线程模式的调度和挂起需要其他程序调度,在采用协程架构时,协程可以自行调度自身,从而可以便于不同协程之间的调度,加快运行效率。
在步骤S303中,所述主协程在接收到所述等待信息之后,调度所述第二协程运行。
具体的,主协程在接收到等待信息之后,获取第一协程返回的CPU资源,并将所述CPU资源分配给第二协程,在分配资源了之后,调度所述第二协程运行。
在步骤S304中,第二协程根据接收的指令生产任务,并将所述任务放入所述任务队列。
在步骤S305中,所述第一协程从所述任务队列中获取任务,并处理所述任务。
本实施中,当任务队列为空时,第一协程并不会立即返回获取函数的结果,而是挂起自身,等待主协程的触发,并主动返回占用的CPU资源,由主协程调度第二协程运行。
上述可知,本发明实施例中的信息处理方法,通过采用协程的架构,由主协程分别调度第一协程、第二协程运行,合理分配各个协程之间的资源,各协程之间独立运行,无需加锁,提高了运行效率,能够保证信息处理的实时性以及高性能,提高服务器对客户端的反应时间,降低时延,提升用户体验。
图4为本发明实施例提供的一种信息处理方法第三实施例的流程图。对比图3所示的第二实施例,本实施例中,还包括主协程调度第一协程的相关步骤,该信息处理方法包括以下步骤S401-S407。
在步骤S401中,第一协程执行获取函数以访问预设的任务队列。
在步骤S402中,若所述任务队列为空,则所述第一协程向所述主协程发送等待信息。
在步骤S403中,所述主协程在接收到所述等待信息之后,调度所述第二协程运行。
在步骤S404中,第二协程根据接收的指令生产任务,并将所述任务放入所述任务队列。
在步骤S405中,所述第二协程根据所述任务队列向所述主协程发送通知信息,所述通知信息用于标识所述任务队列的变化。
具体的,在第二协程将任务放入任务队列之后,根据任务队列的变化向主协程发送通知信息,所述通知信息用于标识任务队列的变化,比如,可用于告知主协程任务队列的任务个数以及任务的属性。在本实施过程中,第二协程在生产完任务之后,还会挂起自身,并将占用的CPU资源返回给主协程,以供主协程调用。
在步骤S406中,所述主协程识别所述通知信息,并根据所述通知信息调度所述第一协程运行。
具体的,主协程在接收到所述通知信息之后,识别所述通知信息,若所述通知信息对应的任务与第一协程匹配,则根据通知信息调度第一协程运行。主协程还将第二协程返回的CPU资源分配给第一协程,以调度第一协程运行。
在步骤S407中,所述第一协程从所述任务队列中获取任务,并处理所述任务。
本实施例中,第一协程和第二协程在执行动作之后,可以挂起自身,并返回占用的资源,由主协程分配资源进行后续的调度,从而可以实现各个协程之间的独立运行,加快运行效率,并且,不需要对各个协程的任务队列进行显示加锁,各个协程之间不会干扰,保证了运行的可靠性和高性能。
上述可知,本发明实施例中的信息处理方法,通过采用协程的架构,由主协程分别调度第一协程、第二协程运行,合理分配各个协程之间的资源,各协程之间独立运行,无需加锁,提高了运行效率,能够保证信息处理的实时性以及高性能,提高服务器对客户端的反应时间,降低时延,提升用户体验。
为便于更好的实施本发明实施例的上述方案,下面还提供用于配合实施上述方案的信息处理系统。
图5为本发明实施例提供的一种信息处理系统第一实施例的结构示意图。所述信息处理系统包括:主协程501、第一协程502以及第二协程503。可以理解的是,第一协程502和第二协程503的个数可以为多个,本发明实施例并不以此为限。
主协程501用于调度所述第一协程502以及第二协程503;
所述第一协程502用于执行获取函数以访问预设的任务队列;
所述第二协程503用于根据接收的指令生产任务,并将所述任务放入所述任务队列;
所述第一协程502还用于从所述任务队列中获取任务,并处理所述任务。
在其他实施方式中,所述第一协程502还用于当所述任务队列为空时,向所述主协程501发送等待信息;
所述主协程501还用于在接收到所述等待信息之后,调度所述第二协程503运行。
在其他实施方式中,所述第二协程503还用于在将所述任务放入所述任务队列之后,根据所述任务队列向所述主协程501发送通知信息,所述通知信息用于标识所述任务队列的变化;
所述主协程501还用于识别所述通知信息,并根据所述通知信息调度所述第一协程502运行。
在其他实施方式中,所述第一协程502对应游戏服务器,所述第二协程503对应游戏客户端;或者所述第一协程502对应游戏客户端,所述第二协程503对应游戏服务器。
在其他实施方式中,所述任务队列包括游戏客户端请求的游戏逻辑。
上述可知,本发明实施例中的信息处理系统,通过采用协程的架构,由主协程分别调度第一协程、第二协程运行,合理分配各个协程之间的资源,各协程之间独立运行,无需加锁,提高了运行效率,能够保证信息处理的实时性以及高性能,提高服务器对客户端的反应时间,降低时延,提升用户体验。
图6为本发明实施例提供的一种信息处理系统第二实施例的结构示意图。所述信息处理系统包括:处理器601以及存储器602,所述处理器601和存储器602可以通过总线进行通信。所述存储器602中存储有可执行的计算机程序,所述处理器601可用于执行所述计算机程序以实现图1-图4所述的信息处理方法。
具体的,所述处理器601执行所述计算机程序以运行主协程、第一协程以及第二协程,其中,所述处理器601运行所述主协程以用于调度所述第一协程以及第二协程;
所述处理器601运行第一协程以用于执行获取函数以访问预设的任务队列;
运行第二协程以用于根据接收的指令生产任务,并将所述任务放入所述任务队列;
运行第一协程以从所述任务队列中获取任务,并处理所述任务。
在可选的实施方式中,所述处理器601还用于运行第一协程以用于当所述任务队列为空时,向所述主协程发送等待信息;
运行所述主协程以用于在接收到所述等待信息之后,调度所述第二协程运行。
在可选的实施方式中,所述处理器601还用于运行所述第二协程以用于在将所述任务放入所述任务队列之后,根据所述任务队列向所述主协程发送通知信息,所述通知信息用于标识所述任务队列的变化;
运行主协程以用于识别所述通知信息,并根据所述通知信息调度所述第一协程运行。
在可选的实施方式中,所述第一协程对应游戏服务器,所述第二协程对应游戏客户端;或者所述第一协程对应游戏客户端,所述第二协程对应游戏服务器。
在可选的实施方式中,所述任务队列包括游戏客户端请求的游戏逻辑。
上述可知,本发明实施例中的信息处理系统,通过采用协程的架构,由主协程分别调度第一协程、第二协程运行,合理分配各个协程之间的资源,各协程之间独立运行,无需加锁,提高了运行效率,能够保证信息处理的实时性以及高性能,提高服务器对客户端的反应时间,降低时延,提升用户体验。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有可执行的计算机程序,所述计算机程序执行时包括如图1-4所述信息处理方法的步骤。
在其他实施例中,为了减少服务器端的资源耗费,采用基于TCP(TransmissionControl Protocol,传输控制协议)实现的RPC(Remote Procedure Call Protocol,远程过程调用协议)系统进行交互,为了实现RPC系统,可选用Google公司开源的Protobuf技术实现。
在可选的实施例中,采用Protobuf可实现abu.RPC,abu.RPC采用Python编写,基于gevent网络库以实现吞吐量的I/O,具有以下特性:
1.数据包更小,由于Protobuf采用二进制协议,abu.RPC调用时需要网络传递的数据包会比SOAP/XML-RPC等基于XML技术的远程过程调用小几倍到几十倍。
2.响应时间更快,由于abu.RPC底层以libevent作为I/O,基于操作系统内核消息的异步I/O拥有更好的性能。
3.并行管线,乱序返回。调用方可以在短时间内同时调用多个服务,由于结果是乱序返回的,能够最大化利用硬件资源。
4.双向调用,在游戏过程中,服务器和客户端进程往往互为RPC的服务器端和客户端,abc.RPC实现了双向调用。
本发明实施例通过采用协程架构,提高了运行效率,能够保证信息处理的实时性以及高性能,提高服务器对客户端的反应时间,降低时延,提升用户体验。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为根据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的模块、单元可以根据实际需要进行合并、划分和删减。本领域的技术人员可以将本说明书中描述的不同实施例以及不同实施例的特征进行结合或组合。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(Digital Subscriber Line,DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种信息处理方法,其特征在于,应用于主协程、第一协程以及第二协程,所述主协程用于调度所述第一协程以及第二协程,所述方法包括:
第一协程执行获取函数以访问预设的任务队列;
第二协程根据接收的指令生产任务,并将所述任务放入所述任务队列;
所述第一协程从所述任务队列中获取任务,并处理所述任务。
2.如权利要求1所述的信息处理方法,其特征在于,还包括:
若所述任务队列为空,则所述第一协程向所述主协程发送等待信息;
所述主协程在接收到所述等待信息之后,调度所述第二协程运行。
3.如权利要求2所述的信息处理方法,其特征在于,还包括:
在将所述任务放入所述任务队列之后,所述第二协程根据所述任务队列向所述主协程发送通知信息,所述通知信息用于标识所述任务队列的变化;
所述主协程识别所述通知信息,并根据所述通知信息调度所述第一协程运行。
4.如权利要求1-3任一项所述的信息处理方法,其特征在于,所述第一协程对应游戏服务器,所述第二协程对应游戏客户端;或者
所述第一协程对应游戏客户端,所述第二协程对应游戏服务器。
5.如权利要求1-3任一项所述的信息处理方法,其特征在于,所述任务队列包括游戏客户端请求的游戏逻辑。
6.一种信息处理系统,其特征在于,包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序以实现:运行主协程、第一协程以及第二协程,其中,运行所述主协程用于调度所述第一协程以及第二协程,所述处理器用于:
运行所述第一协程以用于执行获取函数以访问预设的任务队列;
运行所述第二协程以用于根据接收的指令生产任务,并将所述任务放入所述任务队列;
运行所述第一协程以用于从所述任务队列中获取任务,并处理所述任务。
7.如权利要求6所述的信息处理系统,其特征在于,所述处理器还用于运行所述第一协程以用于当所述任务队列为空时,向所述主协程发送等待信息;
运行所述主协程以用于在接收到所述等待信息之后,调度所述第二协程运行。
8.如权利要求7所述的信息处理系统,其特征在于,所述处理器还用于运行所述第二协程以在将所述任务放入所述任务队列之后,根据所述任务队列向所述主协程发送通知信息,所述通知信息用于标识所述任务队列的变化;
运行所述主协程以用于识别所述通知信息,并根据所述通知信息调度所述第一协程运行。
9.如权利要求6-8任一项所述的信息处理系统,其特征在于,所述第一协程对应游戏服务器,所述第二协程对应游戏客户端;或者
所述第一协程对应游戏客户端,所述第二协程对应游戏服务器。
10.一种计算机存储介质,其特征在于,所述计算机存储介质可存储有程序,所述程序执行时包括如权利要求1-5任一项所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710326266.9A CN107147641A (zh) | 2017-05-10 | 2017-05-10 | 一种信息处理方法、系统及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710326266.9A CN107147641A (zh) | 2017-05-10 | 2017-05-10 | 一种信息处理方法、系统及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107147641A true CN107147641A (zh) | 2017-09-08 |
Family
ID=59777978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710326266.9A Pending CN107147641A (zh) | 2017-05-10 | 2017-05-10 | 一种信息处理方法、系统及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107147641A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109257411A (zh) * | 2018-07-31 | 2019-01-22 | 平安科技(深圳)有限公司 | 一种业务处理方法、调用管理系统和计算机设备 |
CN109885386A (zh) * | 2019-01-03 | 2019-06-14 | 北京潘达互娱科技有限公司 | 一种多任务执行的方法、装置及电子设备 |
CN110019197A (zh) * | 2017-09-28 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | 一种数据写入的方法、装置、服务器及介质 |
CN110247984A (zh) * | 2019-06-27 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置及存储介质 |
CN111708644A (zh) * | 2020-05-29 | 2020-09-25 | 北京百度网讯科技有限公司 | 用于自动驾驶仿真的虚拟世界管理方法和系统 |
CN112328410A (zh) * | 2020-11-04 | 2021-02-05 | 网易(杭州)网络有限公司 | 远程过程调用的实现方法、装置、设备及存储介质 |
CN113535344A (zh) * | 2020-04-16 | 2021-10-22 | 广州虎牙科技有限公司 | 网络数据处理方法和装置、服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142858A (zh) * | 2013-11-29 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 阻塞任务调度方法及装置 |
US20150220352A1 (en) * | 2014-02-05 | 2015-08-06 | Travis T. Wilson | Method and System for Executing Third-Party Agent Code in a Data Processing System |
CN105830029A (zh) * | 2013-12-18 | 2016-08-03 | 甲骨文国际公司 | 用于在计算环境中支持自适应忙等待的系统和方法 |
CN106390453A (zh) * | 2016-08-31 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 一种游戏系统及游戏处理方法 |
CN106506389A (zh) * | 2016-10-19 | 2017-03-15 | 广州华多网络科技有限公司 | 网络请求异步处理方法及装置 |
-
2017
- 2017-05-10 CN CN201710326266.9A patent/CN107147641A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142858A (zh) * | 2013-11-29 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 阻塞任务调度方法及装置 |
CN105830029A (zh) * | 2013-12-18 | 2016-08-03 | 甲骨文国际公司 | 用于在计算环境中支持自适应忙等待的系统和方法 |
US20150220352A1 (en) * | 2014-02-05 | 2015-08-06 | Travis T. Wilson | Method and System for Executing Third-Party Agent Code in a Data Processing System |
CN106390453A (zh) * | 2016-08-31 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 一种游戏系统及游戏处理方法 |
CN106506389A (zh) * | 2016-10-19 | 2017-03-15 | 广州华多网络科技有限公司 | 网络请求异步处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
好库文摘: "基于事件驱动状态机的协程框架设计", 《HTTP://DOC.OKBASE.NET/SEANX/ARCHIVE/244015.HTML》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019197A (zh) * | 2017-09-28 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | 一种数据写入的方法、装置、服务器及介质 |
CN109257411A (zh) * | 2018-07-31 | 2019-01-22 | 平安科技(深圳)有限公司 | 一种业务处理方法、调用管理系统和计算机设备 |
CN109885386A (zh) * | 2019-01-03 | 2019-06-14 | 北京潘达互娱科技有限公司 | 一种多任务执行的方法、装置及电子设备 |
CN110247984A (zh) * | 2019-06-27 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置及存储介质 |
CN110247984B (zh) * | 2019-06-27 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 业务处理方法、装置及存储介质 |
CN113535344A (zh) * | 2020-04-16 | 2021-10-22 | 广州虎牙科技有限公司 | 网络数据处理方法和装置、服务器及存储介质 |
CN111708644A (zh) * | 2020-05-29 | 2020-09-25 | 北京百度网讯科技有限公司 | 用于自动驾驶仿真的虚拟世界管理方法和系统 |
CN112328410A (zh) * | 2020-11-04 | 2021-02-05 | 网易(杭州)网络有限公司 | 远程过程调用的实现方法、装置、设备及存储介质 |
CN112328410B (zh) * | 2020-11-04 | 2023-08-08 | 网易(杭州)网络有限公司 | 远程过程调用的实现方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107147641A (zh) | 一种信息处理方法、系统及计算机存储介质 | |
CN108365971A (zh) | 日志解析方法、设备及计算机可读介质 | |
US8903925B2 (en) | Scheduled messages in a scalable messaging system | |
CN107659547A (zh) | 一种基于事件的流程处理方法及装置和服务器 | |
US20090113448A1 (en) | Satisfying a request for an action in a virtual world | |
JP6756815B2 (ja) | チャットグループベースでのサービスオペレーションを実行する方法及び装置、並びに、グループメンバ情報を取得する方法及び装置 | |
CN102263705B (zh) | 显示即时通讯消息的方法及装置 | |
US10693816B2 (en) | Communication methods and systems, electronic devices, and computer clusters | |
KR20110063313A (ko) | 메시지 큐 내에서 논리적으로 연관된 메시지들의 자동화된 병합 방법 | |
JP2021504813A (ja) | ブロックチェーンネットワークのトランザクション処理方法、装置、機器及び記憶媒体 | |
US8886787B2 (en) | Notification for a set of sessions using a single call issued from a connection pool | |
CN101246486A (zh) | 用于改进的表达式处理的方法和装置 | |
CN104022945B (zh) | 在客户端中实现即时通讯的方法和装置 | |
CN102783129A (zh) | 用于处理在应用程序接口处接收的请求的系统和方法 | |
KR102690215B1 (ko) | 대화 스레드를 표시하기 위한 방법 및 시스템 | |
CN109634764A (zh) | 工作流控制方法、装置、设备、存储介质和系统 | |
CN109391482A (zh) | 网络功能的升级方法及升级管理实体 | |
CN109189502A (zh) | 一种基于即时通讯公众平台的消息处理方法和相关设备 | |
JP5706468B2 (ja) | パンデミックリモートアクセス設計 | |
CN106970845A (zh) | 远程应用连接共享 | |
CN107888787A (zh) | 一种媒体接入请求的处理方法及装置 | |
CN101895531A (zh) | 一种客户端设备、多媒体数据卸载系统及卸载方法 | |
CN107508787B (zh) | 一种任务执行方法、装置及系统 | |
CN110392053A (zh) | 容器访问控制方法、装置、客户端及服务器 | |
US8949344B2 (en) | Asynchronous queued messaging for web applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180718 Address after: 310000, 12 building, white horse building, 1 mi Du Qiao Road, Hangzhou, Zhejiang. Applicant after: Zhejiang Xiang Yuan Cultural Limited by Share Ltd Address before: 518000 room 904-905, block B, Fu An mansion, Gaoxin Nan, Nanshan District, Shenzhen, Guangdong. Applicant before: Shenzhen Game Gravity Technology Co., Ltd. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170908 |