apache的 prefork 和 worker问题

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

阅读 3.8k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进