首页 > 系统相关 >PHP是多进程还是多线程

PHP是多进程还是多线程

时间:2023-12-22 14:35:35浏览次数:34  
标签:PHP php 线程 进程 多线程 系统资源

一、什么是进程

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

二、什么是线程

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

进程有两个特性:

1、资源的所有权

2、调度执行(指令集)

线程是调度执行中的一部分,是指进程执行过程的路径,也叫程序执行流。线程有时候也叫轻量级进程。

process-1.jpg

三、进程和线程的关系

进程就像地主,有土地(系统资源),线程就像佃户(线程,执行种地流程)。每个地主(进程)只要有一个干活的佃户(线程)。进程-资源分配的最小单位,相对健壮,崩溃一般不影响其他进程,但是切换进程时耗费资源,效率差些。

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

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

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

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

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

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

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

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

 

资料来源:https://www.php.cn/faq/431346.html

标签:PHP,php,线程,进程,多线程,系统资源
From: https://www.cnblogs.com/jghdream/p/17921497.html

相关文章

  • PHP多进程简单解释
    之前有人问我,同一个类代码就一份,那么多请求调用,数据不混在一起了吗?我觉得这可能是每一个刚开始面向对象编程的phper的疑惑,下面简单的说一说。首先,了解几个概念“多进程”和“多线程”,了解了这个以后下面理解起来就简单了。本质上你写了一个class,它什么都不是,仅仅是一堆变量和......
  • 文件锁-防止进程重复启动
    funcLock(){ lockFile:="./lock.pid" lock,err:=os.Open(lockFile) iferr==nil{ deferlock.Close() filePid,err:=ioutil.ReadAll(lock) iferr==nil{ pidStr:=fmt.Sprintf("%s",filePid) pid,_:=strconv.Atoi(pi......
  • 我写的蓝宝石留言本php版v7.5
    蓝宝石留言本php版v7.5蓝宝石留言本php版采用原生php,html5,css3,jquery编写,在php5.6.40~php8.x下调试通过。本留言本使用了utf-8编码。include/config1.php是数据库连接参数的配置文件,include/config2是留言板参数的配置文件,include/config1.php可以直接编辑或者在安装时修......
  • Java多线程面试题
    我分析了上百份大中小厂的面经,整理了Java面试中最最最常问的一些问题!小伙伴们可以对照着网站里面的文章学习或者准备面试。网站的内容会继续完善,欢迎你在评论区说出你遇到的高频面试题!林老师带你学编程(「Java学习+面试指南」是一份涵盖大部分Java程序员所需要掌握的核心知识......
  • PHP读取word文档
    1.安装1.1composer安装phpoffice/phpwordcomposerrequirephpoffice/phpword1.2后台代码 $file=$this->request->request('file');if(!$file){$this->error(__('Parameter%scannotbeempty','file......
  • 查看占用端口的进程号
    1)通过下面的命令可以查看占用端口的进程号:netstat-nao|findstr"8080"2)可以通过taskkill-pidxxxx-f命令杀死进程,也可以通过任务管理器,找到对应pid的进程,然后直接右键结束进程即可解除端口占用taskkill-pidxxxx-f......
  • java中对于jvm虚拟机进程的操作类
    在java中,Runtime类表示运行时操作类,是一个封装了JVM进程的类,每一个JVM都对应着一个Runtime类的实例,此实例由JVM运行时为其实例化。下面图示演示了其方法以及应用。......
  • php 在laravel中集成grpc
    在laravel中集成使用grpc一、安装:1、macOSphp扩展:peclinstallgrpc,peclinstallprotobufprotocbuf:brewinstallprotobufetcd:brewinstalletcd2、ubuntu:php扩展:peclinstallgrpc(如果遇到[Makefile:1038:src/core/lib/comp......
  • wp-config.php的配置文件
    <?php/***ThebaseconfigurationforWordPress**Thewp-config.phpcreationscriptusesthisfileduringthe*installation.Youdon'thavetousethewebsite,youcan*copythisfileto"wp-config.php"andfillinthevalues.**......
  • Windows phpstudy vscode Xdebug调试无效,无法监听,没有什么效果
    Windows phpstudy vscodeXdebug调试无效,无法监听,没有什么效果vscode正常,能启动,能标记,就是无法监听打印phpinfo(); Xdebug版本3打印的信息输入这里,找出对应PHPXdebug的dll文件Xdebug:Support—TailoredInstallationInstructions会出给检查结果,下面是我的再看看VSCODE插......