linux中的apache在接受请求时启动的是httpd线程还是进程

Mkless
  • 3.3k

图片描述

问题如图中红色标记,有请求访问到apache上,这些启动的是apache的httpd的进程还是线程?

回复
阅读 3.2k
5 个回答
✓ 已被采纳
首先这个答案是进程,然后看看进程和线程的区别
定义:

进程:是程序运行的实例,是系统进行资源分配和调度的一个独立单位,它包括独立的地址空间,资源以及1个或多个线程。

线程:可以看成是轻量级的进程,是CPU调度和分派的基本单位。
区别:
1.调度 :从上面的定义可以看出一个是调度和分派的基本单位,一个是拥有资源的基本单位
2.共享地址空间,资源:进程拥有各自独立的地址空间,资源,所以共享复杂,需要用IPC,同步简单; 线程共享所属进程的资源,共享简单,但同步复杂,要通过加锁等措施。
3.占用内存,cpu: 进程占用内存多,切换复杂,CPU利用率低; 线程占用内存少,切换简单,CPU利用率高。
4.相互影响: 进程间不会相互影响; 一个线程挂掉会导致整个进程挂掉。

进程
进程
进程
进程
进程

apache是进程,nginx是线程

进程呀,我记得apache中好像有指定工作模式Prefork MPM和worker,Event MPM工作方式可以决定进程和线程及数量.

这里是进程,可以通过pid得知,但是楼上说的有失偏颇,apache不一定就是进程,他也有线程,apache有不同的 MPM 模式,楼主当前的模式应该是prework-多进程模式,apache还有很多其他模式,比如worker就是多线程的,
具体请参考 Apache工作模式

宣传栏