PHP 中如何处理并发请求(使用线程、线程池或子进程)

2024-03-13

据我所知,PHP 支持处理多个并发连接,并且根据服务器的不同,可以按照本中提到的方式进行配置answer https://stackoverflow.com/a/1430890/2159867

服务器如何管理多个连接,是为每个请求分叉一个子进程,还是使用线程处理,还是使用线程池处理?

The 链接答案 https://stackoverflow.com/a/1430890/2159867说一个进程是分叉的,然后评论中的作者说是线程或进程,这使得它很混乱,如果使用子进程、线程或线程池来处理请求?


据我所知,每个网络服务器都有自己的处理多个同时请求的方式。 通常 Apache2 应该为每个新请求派生一个子进程。但是您可以按照链接的 StackOverflow 答案中提到的方式配置此行为。

例如,Nginx 在一个线程中获取每个请求(像 Node.js 一样异步处理新连接),或者有时使用缓存(根据配置;Nginx 也可以用作负载均衡器或 HTTP 代理)。这是为您的应用程序选择正确的网络服务器的问题。

Apache2 可能是一个非常好的网络服务器,但是当您想在生产中使用它时,您需要更多的负载平衡。但当有多个短暂的持续连接或什至根本不改变的文档(或使用缓存)时​​,它也具有强大的功能。

如果您希望有许多持久的连接且处理时间较长,那么 Nginx 非常好。那么你就不需要那么多的负载平衡了。

我希望我能够帮助你解决这个问题;)

Sources:

https://httpd.apache.org/docs/2.4/mod/worker.html https://httpd.apache.org/docs/2.4/mod/worker.html

https://anturis.com/blog/nginx-vs-apache/ https://anturis.com/blog/nginx-vs-apache/

我建议您还看一下:PHP 中什么是线程安全或非线程安全? https://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 中如何处理并发请求(使用线程、线程池或子进程) 的相关文章

随机推荐

  • ListView 始终显示滚动条

    我的应用程序的某些活动中有 ListView 由于 Android 2 1 或 2 2 滚动条仅在用户滚动列表或在开始时滚动很短的时间才会显示 然后滚动条就会消失 是否有可能以某种方式始终显示它们 例如在 Android 1 5 中 在你的
  • 为什么要在类对象的声明中写一个“类”?

    我通常不会这样写 但我见过一个代码库 它几乎无处不在 例如 class prettyClass just class stuff int main class prettyClass obj class return 0 在 C 中 结构的
  • 如何在Android Studio中使用Gradle生成JavaDoc?

    我找不到任何有关如何配置 Gradle 文件来为我的项目创建 JavaDoc 的文档 我已经尝试过 SO 和博客文章中的一些片段 但它们似乎都不起作用 或者它们不提供上下文 这是我的 Gradle 文件 我需要做什么来添加生成 JavaDo
  • 如何使用“npm login”设置 npm 凭据而不从 stdin 读取?

    我正在尝试自动化npm publish在 Docker 容器内 但是当npm login命令尝试读取用户名和电子邮件 npm login lt lt EOF username password email EOF 它可以在 Bash 终端中
  • 服务器套接字 - 仅接受来自白名单中的 IP 地址的连接

    我有一个套接字服务器 它侦听并接受来自客户端的连接 其工作原理如下 do some pre processing socket binds etc listen to client if listen sockfd BACKLOG 1 pe
  • 将列表列表解压到列表中[重复]

    这个问题在这里已经有答案了 我有元组列表的列表 a 1 2 3 4 5 6 7 8 9 10 我怎样才能制作一个元组列表 b 1 2 3 4 5 6 7 8 9 10 天真的方法是 b for c in a for t in c b app
  • 贝塞尔曲线与线段的交点

    我正在用 Python 使用 pygame 编写一个游戏 它要求我为每个新游戏生成随机但美观的 海洋 经过长时间的搜索 我确定了一种涉及贝塞尔曲线的算法 如padlib py http www pygame org project Pyga
  • TypeScript 抱怨 array.map 不存在于 string[] 类型的数组上

    我有一个使用 TypeScript 的 Angular 2 项目 我不明白为什么 TypeScript 实时编译器会抱怨info map 错误消息 未解析的函数或方法 map 当我在浏览器中运行它时 工作得很好 但我不明白为什么会发生这种情
  • VBScript 函数的返回值

    我有两个函数 我试图在第二个函数中使用一个函数的结果 它将前往else部分 但它没有打印 cus number 的任何内容 如何打印 cus number Function getNumber number 423 End Function
  • Laravel 高级搜索查询修复

    我有一个带有多个输入和选择框的搜索表单 我需要帮助来获取查询中的 if 条件 以便每个部分同时单独工作 这是我的刀片代码
  • pymodbus TcpClient超时

    我遇到 pymodbus TcpClient 超时问题 import logging from pymodbus client sync import ModbusTcpClient logging basicConfig log logg
  • SwiftUI macOS 命令(菜单栏)和视图

    大家好 我开始学习 SwiftUI 和 macOS 开发 我正在使用 SwiftUI 生命周期 如何从菜单栏的聚焦窗口调用函数 除了Apple文档之外 我还发现这个参考 https swiftwithmajid com 2020 11 24
  • 使用Intent发送数据

    如何使用 Intent 将数据 例如字符串 从活动 A 发送到活动 B 而无需离开活动 A 我还需要知道如何捕获活动 B 中的数据并将其添加到文本视图中 您正在寻找的是广播接收器 我应该发送广播的活动 public class Activi
  • 如何在R中提取具有相同名称但不同标识符的列

    抱歉 如果它太基础了 但我对 R 不熟悉 我有一个数据框 其中多个列具有相同的列名 因此在导入到 R 后 已添加标识符 像这样的事情 A c 2 3 5 A 1 c aa bb cc A 2 c TRUE FALSE TRUE B c 1
  • 在 python 中提取和解码字符串化字节字符串?

    我有这样的字符串 其中有一个字符串化的字节子字符串 如下所示 some string b Hurricane Mitch n 提取嵌套 b 字符串以便我可以用 utf8 正确解码它的最佳方法是什么 最直接的方法 仍然比您需要的更强大 但可能
  • 我的 .htaccess 文件无法正常工作

    我已将我的项目添加到免费托管 000webhost 上 我的所有文件都列在 public html 目录中 项目是在codeigniter中构建的 我在 public html htaccess 添加了 htaccess 文件 其中包含 O
  • C for 循环遍历带指针的数组

    我是 C 新手 但我有 Java 和 Android 经验 我的 for 循环有问题 它永远不会结束 只会继续下去 char entered string 50 char p string NULL gets entered string
  • Api-Platform:在 SF 4 中使用 Yaml 配置代替注释

    我想在 Api Platform 中使用 YAML 而不是注释 我没有使用 Api Platform 发行版 而是将 api pack 添加到了现有的 Symfony Flex 项目中 composer req api 文档说 YAML 文
  • “在我的机器上运行” - 如何修复不可重现的错误?

    偶尔 尽管进行了所有测试 我还是收到了客户的错误报告 而我根本无法在办公室重现该错误报告 Apologies to Jeff http www codinghorror com blog archives 000818 html for t
  • PHP 中如何处理并发请求(使用线程、线程池或子进程)

    据我所知 PHP 支持处理多个并发连接 并且根据服务器的不同 可以按照本中提到的方式进行配置answer https stackoverflow com a 1430890 2159867 服务器如何管理多个连接 是为每个请求分叉一个子进程