柒资源

PHP底层之五:PHP的进程与线程详解

  • 时间:2018-04-02 09:15 编辑:张少平 来源:柒资源 阅读:311
  • 扫一扫,手机访问
摘要:一个进程里面有一个或者多个线程,php-fpm使用的就是多进程模型。 进程-资源分配的最小单位,相对健壮,崩溃一般不影响其他进程,但是切换进程时耗费资源,效率差些。 线程-程序执行的最小单位,没有独立的地址空间,一个线程死掉可能整个进程就死掉,但是节省资源,切换效率高。

一、什么是进程

进程是程序执行是的一个实例,进程能够分配给cpu和内存等资源。进程一般包括指令集和系统资源,其中指令集就是你的代码,系统资源就是指cpu、内存以及I/O等。

二、什么是线程

线程是进程的一个执行流,线程不能分配系统资源,它是进程的一部分,比进程更小的独立运行的单位。

解释一下:进程有两个特性:一是资源的所有权,一个是调度执行(指令集),线程是调度执行中的一部分,是指进程执行过程的路径,也叫程序执行流。线程有时候也叫轻量级进程。



三、进程和线程的关系

一个进程里面有一个或者多个线程,php-fpm使用的就是多进程模型。

进程-资源分配的最小单位,相对健壮,崩溃一般不影响其他进程,但是切换进程时耗费资源,效率差些。

线程-程序执行的最小单位,没有独立的地址空间,一个线程死掉可能整个进程就死掉,但是节省资源,切换效率高。

四、php编程常见的进程和线程

1、在web应用中,我们每次访问php,就建立一个PHP进程,当然也会建立至少一个PHP线程。

2、PHP使用pcntl来进行多进程编程

3、PHP中使用pthreads来进行多线程编程

4、nginx的每个进程只有一个线程,每个线程可以处理多个客户端的访问

5、php-fpm使用多进程模型,每个进程只有一个线程,每个线程只能处理一个客户端访问。

6、apache可能使用多进程模型,也可能使用多线程模型,取决于使用哪种SAPI.

结束语

对于某个服务而言,譬如web服务,主要考虑它的并发能力,就是单位时间内能处理的请求数量。而并行计算就是为了提高并发能力的。脱离nginx或者apache来说,php的并行处理能力,既可以用多进程的模型来提高,也可以用多线程的模型来提高。最简单的情况下,php提供单进程单线程的方式来提供服务,每次之处理一个请求,如果请求的处理速度足够快,一秒时间内并发能力也可以算是强的,但是这样比较浪费资源,所以往往会根据CPU、内存、网络的情况来设置多进程、多线程或者多服务器来提高并发能力。




了解了PHP的底层运行机制和原理以后,我们还要了解以下HTTP协议的相关知识:一次完整的HTTP请求所经历的7个步骤


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术干货|】火车头采集器7.6破解版出现闪退的解决办法(2018-04-11 13:19)
【技术干货|】PHP中常见的知识点不得不知道的技术点(2018-04-04 16:55)
【技术干货|】PHP工作中案例的总结-简述版(2018-04-04 16:32)
【技术干货|】PHP面试总结(2018-04-04 15:16)
【技术干货|】浅谈MySQL中优化sql语句查询常用的30种方法(2018-04-04 14:29)
【新闻资讯|】强制索权!中国电信这款APP不仅索要70多项权限,还要修改你的通讯录(2018-04-02 19:06)
【技术干货|】什么是死锁和如何解决死锁(2018-04-02 19:00)
【技术干货|】PHP 图片自动过滤和检测(2018-04-02 15:51)
【技术干货|】PHP主流技术之:PHP7的新特性(2018-04-02 10:16)
【技术干货|】关于HTTP协议(2018-04-02 09:59)
网站首页??|?? 关于我们??|?? 广告合作??|?? 联系我们??|?? 隐私条款??|?? 免责声明
CopyRight 2014-2024 柒资源 | 京ICP备17053914号-2
联系客服
平台客服 平台小二 招商入驻 联系客服
13051431117
手机版

扫一扫进手机版
返回顶部