首页  >  问答  >  正文

apache的 prefork 和 worker问题

apache prefork是多进程处理请求的,worker模式是一个进程使用多个线程处理请求,等于说是多进程加多线程,处理并发请求可以更多,内存和CPU消耗更少,但有线程安全的问题。网上有一大堆比较这两个模式的区别,都是讲了我说的多进程,多线程的。
问题一:既然worker模式可以提高高并发,省内存和CPU,那为什么apache默认还要使用prefork模式呢?
问题二:apache用worker模式,然后再用linux的epoll模式,那是不是并发也能支持过万了?

高洛峰高洛峰2713 天前401

全部回复(1)我来回复

  • 仅有的幸福

    仅有的幸福2017-05-16 17:05:39

    apache当然可以使用worker模式进行对PHP处理了,就像你说的处理并发请求的能力增加,内存和CPU消耗会更少,但是唯一一点不足的是,prefork是多进程多线程的,而有些PHP扩展存在线程安全的问题,所以碰到不存在有线程安全的PHP扩展,完全可以使用,但如果存在,那么就最好别用,不然会造成数据的不一致性的,另外apache如果使用epoll确实也可以,但并发过万估计还是有点吃力

    回复
    0
  • 取消回复