无内功不5功 发布于 2017-05-17 00:26

我在php5.2上面运行一个自动发邮件的程序,一开始运行后,再点别的链接都开始在等待状态了。是否是因为php是单线程排队运行?

4 个回答
  • 拿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扩展没有关系。

    2017-05-17 18:25 回答
  • 只能说php-fpm或者php-cgi不是多线程的
    php本身是可以写多线程的

    http://php.net/manual/zh/class.thread.php

    2017-05-18 00:06 回答
  • 用swoole吧,并发so easy

    2017-05-17 05:51 回答
  • php不是多线程的啊

    2017-05-17 09:31 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
活跃用户
  • 1
    问道摩托
  • 2
    袁广龙976丶
  • 3
    逍遥子
  • 4
    亮仔
  • 5
    芙蓉花
  • 6
    作小die_syj
  • 7
    王丽珠景平怡伦_621
  • 8
    adfa3sd5f6a
  • 9
    欣欣大妮
  • 10
    狂风DKC想毕业321
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有