Вам нужно подумать о двух вещах.
Первая - это то, как настроен ваш веб-сервер.Если вы используете Apache, есть несколько модулей обработки , из которых можно выбрать.Самый популярный модуль обработки - prefork , в котором есть один родительский процесс и несколько дочерних процессов.Каждый ребенок обрабатывает один запрос за раз.Это полностью исключает многопоточность, поскольку не все модули Apache являются поточно-ориентированными.Вы также можете найти модуль worker где-нибудь в производстве.Он использует комбинацию разветвления и потоков для обслуживания нескольких запросов на каждого потомка.Он может использоваться только тогда, когда каждый отдельный модуль Apache и все его зависимости являются поточно-ориентированными.
Вторая вещь, о которой стоит подумать, это сам PHP.Хотя основной язык PHP и некоторые расширения являются поточно-ориентированными, многие расширения не являются поточно-ориентированными.По этой причине, когда вы используете Apache и mod_php, модуль обработки prefork - ваш лучший выбор.(Сам PHP не имеет внутренней концепции потоков.)
tl; dr: Apache + PHP = один запрос на каждого дочернего элемента Apache.Обычно у вас будет только 20-30 детей Apache, что означает 20-30 возможных одновременных запросов.Это зависит от конфигурации.