首页 > 解决方案 > 如何为每个 php 线程获取唯一的 php-extension 实例?

问题描述

我的朋友们,我有一个艰巨的任务,使用 libssh2 创建 php 扩展(我将称之为自定义扩展)。扩展必须与 php 扩展 pthread 一起使用。假设我有 100 个 php 线程。正如我所见,所有线程都具有相同的自定义扩展实例。而且,正如我所想,这就是为什么当我使用超过 1 个线程时会遇到很多问题。例如,自定义扩展 C 代码中的全局变量将被 pthread 覆盖。当然,我可以使用__thread,但它不能解决问题。自定义扩展中的 Libssh2 使用使事情变得更加困难。我不会提供任何代码,因为我认为这并不重要。

所以问题是:是否可以让每个 php pthread 使用自己的新自定义扩展实例?我认为这对我的情况会更好,因为那时我将为每个线程封装自定义扩展。此外,用于自定义扩展的 libssh2 也应该是每个线程的新实例。这种方式必须为我保存变量覆盖和其他段错误错误。

标签: phppthreadsphp-extension

解决方案


推荐阅读