[发明专利]实现PHP内核可重入的方法、装置、服务器和存储介质有效
申请号: | 201810474059.2 | 申请日: | 2018-05-17 |
公开(公告)号: | CN108647087B | 公开(公告)日: | 2022-05-17 |
发明(设计)人: | 郑榕;孙琦 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 刘映东 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 php 内核 可重入 方法 装置 服务器 存储 介质 | ||
本发明公开了一种实现PHP内核可重入的方法、装置、服务器和存储介质,属于计算机技术领域。方法包括:当服务器接收到处理请求时,为待重入的PHP内核分配协程;通过所述协程运行所述PHP内核,得到所述PHP内核的运行实例;根据所述PHP内核的全局实例表,选择一个空闲实例的实例标识,所述全局实例表中存储至少一个实例标识和实例状态的对应关系;根据所述实例标识,将所述PHP内核的运行实例切换到选择的空闲实例中,以及根据所述实例标识,将对所述PHP内核中的结构体指针资源的访问,切换到所述空闲实例对应的资源上。本发明实现了PHP内核的可重入,使得PHP内核具备了协程特性,提高了PHP内核的并发处理能力。
技术领域
本发明涉及计算机技术领域,特别涉及一种实现PHP内核可重入的方法、装置、服务器和存储介质。
背景技术
在多线程环境中,一般是使用PHP-FPM(FastCGI Process Manager,FastCGI进程管理器)对处理请求进行处理。当PHP-FPM接收到处理请求时,会为该处理请求分配一个服务进程,该服务进程使用同步阻塞IO(Input/Output,输入/输出)的处理模式进行处理,然而同步阻塞IO的处理模式严重限制了PHP-FPM处理高并发请求的处理能力。而提升并发能力最有效的方法就是将IO处理异步化。而传统的将IO处理异步化的方法往往是基于事件异步回调处理的方式进行实现。但传统的基于事件异步回调处理的编程模式在处理复杂业务逻辑的场景中开发效率十分低下;并且无法重用原有的业务代码。而使用基于协程的服务器架构可以很好的解决这一点,其同步编码异步执行的特性方便业务开发的同时兼备了高性能。
由于PHP(Hypertext Preprocessor,超文本预处理器)语言本身并没有对应用透明的协程特性。因此为了解决这个问题,需要将PHP内核嵌入到协程架构中,使得PHP开发也能充分享用到协程的特性,将PHP服务的性能提升到一个新的高度。而将PHP内核嵌入到协程架构中,就需要实现PHP内核的可重入问题。
发明内容
本发明提供了一种实现PHP内核可重入的方法、装置、服务器和存储介质,可以解决相关技术中存在的问题。技术方案如下:
一方面,本发明实施例提供了一种实现PHP内核可重入的方法,所述方法包括:
当服务器接收到处理请求时,为待重入的超文本预处理器PHP内核分配协程;
通过所述协程运行所述PHP内核,得到所述PHP内核的运行实例;
根据所述PHP内核的全局实例表,选择一个空闲实例的实例标识,所述全局实例表中存储至少一个实例标识和实例状态的对应关系;
根据所述实例标识,将所述PHP内核的运行实例切换到选择的空闲实例中,以及根据所述实例标识,将对所述PHP内核中的结构体指针资源的访问,切换到所述空闲实例对应的资源上。
一方面,本发明实施例提供了一种实现PHP内核可重入的装置,所述装置包括:
分配模块,用于当服务器接收到处理请求时,为待重入的超文本预处理器PHP内核分配协程;
运行模块,用于通过所述协程运行所述PHP内核,得到所述PHP内核的运行实例;
选择模块,用于根据所述PHP内核的全局实例表,选择一个空闲实例的实例标识,所述全局实例表中存储至少一个实例标识和实例状态的对应关系;
切换模块,用于根据所述实例标识,将所述PHP内核的运行实例切换到选择的空闲实例中,以及根据所述实例标识,将对所述PHP内核中的结构体指针资源的访问,切换到所述空闲实例对应的资源上。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810474059.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:安卓系统中的应用切换方法和装置
- 下一篇:资源配置方法、装置、终端及存储介质