[发明专利]实现PHP内核可重入的方法、装置、服务器和存储介质有效
申请号: | 201810474059.2 | 申请日: | 2018-05-17 |
公开(公告)号: | CN108647087B | 公开(公告)日: | 2022-05-17 |
发明(设计)人: | 郑榕;孙琦 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 刘映东 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 php 内核 可重入 方法 装置 服务器 存储 介质 | ||
1.一种实现PHP内核可重入的方法,其特征在于,所述方法包括:
接收线程的申请请求,所述申请请求携带所述线程的参数,用于为所述线程申请全局变量;
基于所述线程的参数,在全局变量池中为所述线程分配对应的内存区块,向所述线程返回所述内存区块的标识,所述全局变量池为整个进程在进程堆上分配的内存空间;
当服务器接收到所述线程的处理请求时,为待重入的超文本预处理器PHP内核分配协程,所述处理请求中携带所述内存区块的标识;
通过所述协程运行所述PHP内核,得到所述PHP内核的运行实例;
根据所述PHP内核的全局实例表,选择一个空闲实例的实例标识,所述全局实例表中存储至少一个实例标识和实例状态的对应关系;
根据所述实例标识,将所述PHP内核的运行实例切换到选择的空闲实例中,以及根据所述实例标识,将对所述PHP内核中的结构体指针资源的访问,切换到所述空闲实例对应的资源上;
基于所述内存区块的标识,通过所述PHP内核在所述内存区块上执行所述处理请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述PHP内核执行所述处理请求的执行逻辑中存在网络输入输出IO操作时,调用扩展封装的IO接口;
在所述扩展封装的IO接口中,通过所述协程包裹的接口函数进行所述IO操作。
3.根据权利要求2所述的方法,其特征在于,所述调用扩展封装的IO接口之前,所述方法还包括:
使用栈空间局部变量保存所述实例标识;
当接收到IO返回的处理结果时,从所述栈空间局部变量中获取所述实例标识,将所述处理请求的全局资源的资源标识修改为所述实例标识。
4.根据权利要求1所述的方法,其特征在于,所述根据所述实例标识,将对所述PHP内核中的结构体指针资源的访问,切换到所述空闲实例对应的资源上,包括:
根据所述实例标识,确定所述空闲实例对应的资源表,所述资源表包括资源标识和资源数据;
确定所述PHP内核的结构体指针资源的资源标识;
根据所述资源标识和所述资源表,通过资源切换入口,获取所述PHP内核访问的资源数据。
5.根据权利要求4所述的方法,其特征在于,所述根据所述实例标识,确定所述空闲实例对应的资源表,包括:
根据所述实例标识,从实例标识和结构体指针资源的对应关系中获取所述空闲实例对应的结构体指针资源;
根据所述结构体指针资源,从结构体指针资源和资源表的对应关系中获取所述空闲实例对应的资源表。
6.根据权利要求4所述的方法,其特征在于,所述确定所述PHP内核的结构体指针资源的资源标识,包括:
确定所述协程的协程标识;
根据所述协程标识,从协程标识和结构体指针资源的对应关系中获取所述PHP内核的结构体指针资源的资源标识。
7.一种实现PHP内核可重入的装置,其特征在于,所述装置包括:
分配模块,用于接收线程的申请请求,所述申请请求携带所述线程的参数,用于为所述线程申请全局变量;
基于所述线程的参数,在全局变量池中为所述线程分配对应的内存区块,向所述线程返回所述内存区块的标识,所述全局变量池为整个进程在进程堆上分配的内存空间;当服务器接收到所述线程的处理请求时,为待重入的超文本预处理器PHP内核分配协程,所述处理请求中携带所述内存区块的标识;
运行模块,用于通过所述协程运行所述PHP内核,得到所述PHP内核的运行实例;
选择模块,用于根据所述PHP内核的全局实例表,选择一个空闲实例的实例标识,所述全局实例表中存储至少一个实例标识和实例状态的对应关系;
切换模块,用于根据所述实例标识,将所述PHP内核的运行实例切换到选择的空闲实例中,以及根据所述实例标识,将对所述PHP内核中的结构体指针资源的访问,切换到所述空闲实例对应的资源上;
执行模块,用于基于所述内存区块的标识,通过所述PHP内核在所述内存区块上执行所述处理请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810474059.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:安卓系统中的应用切换方法和装置
- 下一篇:资源配置方法、装置、终端及存储介质