PHP进程模型是一个正在执行的程序,可以分配给处理器并由处理器执行的一个实体;PHP进程通讯方式有管道及有名管道,信号,共享内存等;PHP进程线程的区别有进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元等。

PHP进程模型、进程通讯方式、进程线程的区别分别是:

一、PHP进程模型

进程的概念是操作系统的结构的基础。Multics的设计者在20世纪60年代首次使用了这个技术词语,它比作业更通用一些。关于进程的定义,如下所示:

1、一个正在执行的程序。

2、计算机中正在运行的程序的一个实例。

3、可以分配给处理器并由处理器执行的一个实体。

4、由单一的顺序的执行线程、一个当前状态和一组相关的系统资源所描述的活动单元。相关学习推荐:PHP编程从入门到精通

二、进程与线程区别

进程是资源分配的基本单位。所有与该进程有关的资源,都被记录在进程控制块PCB中。以表示该进程拥有这些资源或正在使用它们。

另外,进程也是抢占处理机的调度单位,它拥有一个完整的虚拟地址空间。当进程发生调度时,不同的进程拥有不同的虚拟地址空间,而同一进程内的不同线程共享同一地址空间。

与进程相对应,线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。

线程只由相关堆栈(系统栈或用户栈)寄存器和线程控制表TCB组成。寄存器可被用来存储线程内的局部变量,但不能存储其他线程的相关变量。

通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度,从而显著提高系统资源的利用率和吞吐量。因而近年来推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。

线程与进程的区别可以归纳为以下4点:

(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元

(2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进行至少包括一个线程。

(3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束

(4)线程是轻量级的进程,它的创建和销毁所需要的时间比进程小很多,所有操作系统中的执行功能都是创建线程去完成的

(5)线程中执行时一般都要进行同步和互斥,因为他们共享同一进程的所有资源

(6)线程有自己的私有属性TCB,线程id,寄存器、硬件上下文,而进程也有自己的私有属性进程控制块PCB,这些私有属性是不被共享的,用来标示一个进程或一个线程的标志

三、进程间通信方式

1、管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;

2、信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);

3、报文(Message)队列(消息队列):消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。

4、共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。

信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。

5、套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字。

php进程通讯方式,PHP进程模型、进程通讯方式、进程线程的区别分别有哪些?相关推荐

  1. 操作系统(十二)线程的实现方式、多线程模型

    2.1.6 线程的实现方式.多线程模型 目录 2.1.6 线程的实现方式.多线程模型 2.1.6.1 线程的实现方式 2.1.6.2 多线程模型 2.1.6.1 线程的实现方式   线程已在许多系统中 ...

  2. php多线程模型,PHP进程模型、进程通讯方式、进程线程的区别分别有哪些?

    PHP进程模型是一个正在执行的程序,可以分配给处理器并由处理器执行的一个实体:PHP进程通讯方式有管道及有名管道,信号,共享内存等:PHP进程线程的区别有进程是资源的分配和调度的一个独立单元,而线程是 ...

  3. 模型预测控制系列讲解(二):模型预测控制算法发展进程

    模型预测控制系列讲解(二)模型预测控制算法发展进程以及基本原理 写在前面 预测控制的产生和发展 预测控制的基本原理以及思想 写在前面 很多时候人们会忽略科技以及工程发展的历史,个人觉得这种习惯特别要不 ...

  4. 进程和线程的区别,进程间通信方式,怎么选择比较好

    此篇文章讲解比较多,面试记住原理特点应该差不多了 进程和线程的区别 进程 进程是资源分配的基本单位. 进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态 ...

  5. 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这

    线程共享的环境: 进程代码段.进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯).进程打开的文件描述符.信号的处理器.进程的当前目录和进程用户ID与进程组ID. 进程拥有这许多共性的 ...

  6. 进程间基于共享存储区的通信_IPC(进程间通讯):inter process communication

    管道 (1)管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道: (2)只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程): (3)**单独构成一种独立的文件系统:**管道 ...

  7. 进程理论以及开启子进程的两种方式

    进程理论(book:现代操作系统) 为何开启子进程需要放在main下面:因为运行到start他会向操作系统发起启动子进程的信号,然后操作系统会把整个代码块执行下,找到子进程要执行的任务, 代码运行到最 ...

  8. linux 僵尸进程deffunc,多进程-开启子进程的两种方式,查看进程的pid与ppid,僵尸进程与孤儿进程...

    一.开启子进程的两种方式 方式一: # 方式一: from multiprocessing import Process import time def task(name): print(" ...

  9. Linux解决僵尸进程的几种方式,SIGCHLD信号设置SIG_IGN处理方式等

    目录 僵尸进程 解决方式 父进程阻塞调用wait() 父进程非阻塞调用waitpid() SIGCHLD信号 SIG_IGN信号 僵尸进程 我们知道linux下进程有种状态叫做僵尸状态; 原因是父进程 ...

最新文章

  1. 修改oracle的隐藏参数,oracle隐藏参数查看及修改
  2. navigator对象介绍
  3. 诺基亚报告称:到2020年北美电子邮件流量占比将跌至7%
  4. [css] 用CSS绘制一个红色的爱心
  5. bzoj3238 [Ahoi2013]差异
  6. 解决NTKO Office中文文件名保存到服务器时出现乱码的问题
  7. 在DOS中使用系统还原工具
  8. 学成在线案例(完整代码)
  9. ug建模减速器_UG齿轮减速器建模方法
  10. fpga学习——zynq图像处理中的DVP流接口封装
  11. 收藏 | 电子元器件图片、名称、符号图形对照
  12. html在线表格样式模板,纯css实现的table表格样式,教程站常用
  13. java socket分包粘包 代码_分享java中处理socket通信过程中粘包情况的实例代码
  14. C语言程序设计今天下雨了吗,C语言编程模拟下雨by张田浩
  15. thinkpad计算机快捷键,Thinkpad笔记本键盘F1-F12功能键详细介绍
  16. 微软的软件测试工程师——《微软的软件测试之道》
  17. 自学GRE要准备些什么
  18. 哈工大软件构造2022笔记(持续更新----1)
  19. 想要做”架构师“,一定要会画设计图
  20. 查询同学选修mysql课程的成绩_mysql-练习题 - osc_wy5qpqnh的个人空间 - OSCHINA - 中文开源技术交流社区...

热门文章

  1. 计算机应用基础抢答题,计算机应用基础问答题
  2. HTML用css让input无法使用,html – 是否可以使用CSS设置一个禁用的INPUT元素?
  3. php 判断是否文件,php 判断是否一个文件的函数is_file()应用举例
  4. 清华大学python镜像_使用清华开源镜像安装tensorflow
  5. 覆盖php配置文件,配置 – 用另一个文件覆盖php-fpm池配置值
  6. python django restful框架_Django RESTful API 实例带你快速上手开发
  7. vs用c语言写贪吃蛇,熬书几个月,终于编出简易的贪吃蛇了,VS2013
  8. Android usb 权限广播,android10.0 USB弹窗权限流程解析
  9. java 调用对象的方法_JAVA调用对象方法的执行过程
  10. matlab与专业应用,MATLAB应用技术--在电气工程与自动化专业中的应用