如何为每个php线程获取唯一的php-extension实例?

时间:2019-05-08 08:42:34

标签: php pthreads php-extension

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

所以问题是:是否可以使每个php pthread使用自己的新自定义扩展实例?我认为这对我的情况会更好,因为这样我将为每个线程封装自定义扩展。同样,在自定义扩展中使用的libssh2也应该是每个线程的新实例。这种方法必须避免变量覆盖和其他段错误。

  • 我已经用--enable-pthreads=shared编译了自定义扩展
  • 我的环境是Ubuntu 18.04 64位,PHP-CLI 7.2.2 ZTS

0 个答案:

没有答案