php - 如何为每个 php 线程获取唯一的 php-extension 实例?
问题描述
我的朋友们,我有一个艰巨的任务,使用 libssh2 创建 php 扩展(我将称之为自定义扩展)。扩展必须与 php 扩展 pthread 一起使用。假设我有 100 个 php 线程。正如我所见,所有线程都具有相同的自定义扩展实例。而且,正如我所想,这就是为什么当我使用超过 1 个线程时会遇到很多问题。例如,自定义扩展 C 代码中的全局变量将被 pthread 覆盖。当然,我可以使用__thread
,但它不能解决问题。自定义扩展中的 Libssh2 使用使事情变得更加困难。我不会提供任何代码,因为我认为这并不重要。
所以问题是:是否可以让每个 php pthread 使用自己的新自定义扩展实例?我认为这对我的情况会更好,因为那时我将为每个线程封装自定义扩展。此外,用于自定义扩展的 libssh2 也应该是每个线程的新实例。这种方式必须为我保存变量覆盖和其他段错误错误。
- 我已经编译了自定义扩展
--enable-pthreads=shared
- 我的环境是 Ubuntu 18.04 64bit,PHP-CLI 7.2.2 ZTS
解决方案
推荐阅读
- excel - 如何根据带有条件的行值复制粘贴数据
- javascript - 通过 webpack 的 'url-loader' 导入图像会破坏 IE11 上的输出
- webrtc - 如何修复 InvalidStateError:没有远程 SDP 时无法添加 ICE 候选
- javascript - 如何在 javascript 中插入链接(谷歌地图)
- javascript - 如何在执行新功能之前等待两个 DynamoDB 调用完成?
- android - 将数据(打印)发送到蓝牙 (BLE) 打印机
- python-3.x - 如何找到将 .PB 文件(Faster RCNN 模型)转换为 TFlite 文件的输入和输出张量?
- jquery - 仅在删除请求时出现错误 404
- sql-server - SQL Server:从一个查询中插入到 2 个表中
- python - 我正在使用 Scrapy 蜘蛛和 CSS 选择器,但无法删除空格。你能帮助我吗?