- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
真的只是一个理论问题。
假设我的网站包含一个使用 PHP 邮件功能发送电子邮件的表单。我有 500 个用户同时点击提交。现在必须从 PHP 发送 500 个不同 session 中的 500 封电子邮件。
会同时进行吗?涉及多少个线程?每个人都会发送阻止其他人并一个一个地做吗?
最佳答案
您需要考虑两件事。
首先是您如何配置 Web 服务器。如果您使用的是 Apache,则有一些 processing modules可以从中挑选。最流行的处理模块是prefork,其中有一个单父进程和多个子进程。每个 child 一次处理一个请求。这完全避免了线程化,因为并非所有 Apache 模块都是线程安全的。您可能还会在生产中的某个地方找到 worker 模块。它使用 fork 行为和线程的组合来为每个 child 提供多个请求。它只能在每个 Apache 模块及其所有依赖项都是线程安全的情况下使用。
第二个要考虑的是 PHP 本身。虽然核心 PHP 语言和一些扩展是线程安全的,但许多扩展不是线程安全的。因此,当您使用 Apache 和 mod_php 时,prefork 处理模块是您的最佳选择。 (PHP 本身没有线程的内部概念。)
tl;dr:Apache + PHP = 每个 Apache 子节点一个请求。您通常只有 20-30 个 Apache 子级,这意味着 20-30 个可能的并发请求。这取决于配置。
关于php - Apache 下的 PHP 是可重入的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5236983/
嗨,我已经阅读了 Java 中的 ReadWriteLock,但我不确定我是否掌握了它的重入部分。这是两个仅使用一个主线程来显示重入的简短代码示例 public class Locks { p
我在使用 NotifyIcons 时发现了一个重入问题。重现它真的很容易,只需在表单上放置一个 NotiftIcon,点击事件应该如下所示: private bool reentrancyDetect
我正在尝试使用 SQLite 的新 C 接口(interface)预更新 Hook : https://www.sqlite.org/c3ref/preupdate_count.html 现在回答我的
来自阅读here我发现 Actor 是可重入的,并且我希望以下情况成立:如果我有单一类型的转换 ThespianType 但有三个特定的 Actor ThespianType (T1、T2 和 T3)
有人可以向我解释一下 BlockReentrancy 的目的是什么吗?方法在ObservableCollection ? MSDN显示以下内容作为示例: //The typical usage is
我是一名优秀的程序员,十分优秀!