php - pfsockopen 线程安全?

标签 php multithreading sockets concurrency

我正在编写一个连接到 Java 服务器以获取数据的 PHP 站点。它通过套接字执行此操作。为了提高性能,我想使用 pfsockopen() 连接到服务器,因此不必为每个请求打开一个新连接(需要昂贵的握手)。

但是我在文档中找不到什么,这个线程安全吗?如果 PHP 在多个线程中执行,每个线程都有自己的套接字吗?我可能会将 PHP 作为 Apache 模块或 FastCGI 运行。

最佳答案

一般来说,是的。如果您使用的是线程安全的 SAPI(例如 IIS),那么 pfsockopen可以安全使用。

话虽如此,PHP 很少真正被线程化。

  • Apache 模块,mod_php仅适用于 prefork MPM,即每个请求一个进程。在此配置中,使用 pfsockopen 没有任何好处。 ,因为在每次请求之后都会清理整个过程。
  • CGI 同样为每个请求启动一个新的品牌流程。
  • FastCGI 是每个请求一个进程,但能够重用进程。
  • PHP-FPM 使用进程池,但对于单个 HTTP 请求仍然是单线程的。
  • 关于php - pfsockopen 线程安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3867662/

    相关文章:

    perl socket编程连续写入socket后的问题

    php - 在木 Twig 文件内循环

    php - 使用PHP显示的长日志数据易于阅读

    java - 多次运行一个线程

    java - TCP 套接字连接 Java Client<-> c++ 服务器中的意外行为

    PHP TCP 套接字服务器在接受新连接时挂起

    macos - OSX Apache 使用错误版本的 PHP

    php - 文件上传应用程序从 PHP 文件返回内部服务器错误

    c# - 向等待 TCP 的线程发送指令?

    multithreading - 线程监视器如何工作?