拿PHP-FPM来说,不管是线程安全(TS)还是非线程安全(NTS)版本,一个工作进程在同一时刻只能处理一个请求,要同时处理多个请求,则必须开启多个工作进程,比如在php-fpm.conf中配置开启5个pm.max_children = 5。
工作在线程化MPM(比如Linux上的event,Windows上的winnt)下的Apache需要配合线程安全(TS)版PHP使用,这时,只要开启一个包含多个线程的Apache进程就能同时处理多个PHP请求。
Linux event MPM
StartServers 3
MinSpareThreads 75
MaxSpareThreads 250
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 0
Windows winnt MPM
ThreadsPerChild 150
MaxConnectionsPerChild 0
PHP-FPM和Apache/PHP能不能同时处理多个请求,跟pthreads这个PECL扩展没有关系。