php进程通讯方式,PHP进程模型、进程通讯方式、进程线程的区别分别有哪些?
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进程模型、进程通讯方式、进程线程的区别分别有哪些?相关推荐
- 操作系统(十二)线程的实现方式、多线程模型
2.1.6 线程的实现方式.多线程模型 目录 2.1.6 线程的实现方式.多线程模型 2.1.6.1 线程的实现方式 2.1.6.2 多线程模型 2.1.6.1 线程的实现方式 线程已在许多系统中 ...
- php多线程模型,PHP进程模型、进程通讯方式、进程线程的区别分别有哪些?
PHP进程模型是一个正在执行的程序,可以分配给处理器并由处理器执行的一个实体:PHP进程通讯方式有管道及有名管道,信号,共享内存等:PHP进程线程的区别有进程是资源的分配和调度的一个独立单元,而线程是 ...
- 模型预测控制系列讲解(二):模型预测控制算法发展进程
模型预测控制系列讲解(二)模型预测控制算法发展进程以及基本原理 写在前面 预测控制的产生和发展 预测控制的基本原理以及思想 写在前面 很多时候人们会忽略科技以及工程发展的历史,个人觉得这种习惯特别要不 ...
- 进程和线程的区别,进程间通信方式,怎么选择比较好
此篇文章讲解比较多,面试记住原理特点应该差不多了 进程和线程的区别 进程 进程是资源分配的基本单位. 进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态 ...
- 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这
线程共享的环境: 进程代码段.进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯).进程打开的文件描述符.信号的处理器.进程的当前目录和进程用户ID与进程组ID. 进程拥有这许多共性的 ...
- 进程间基于共享存储区的通信_IPC(进程间通讯):inter process communication
管道 (1)管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道: (2)只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程): (3)**单独构成一种独立的文件系统:**管道 ...
- 进程理论以及开启子进程的两种方式
进程理论(book:现代操作系统) 为何开启子进程需要放在main下面:因为运行到start他会向操作系统发起启动子进程的信号,然后操作系统会把整个代码块执行下,找到子进程要执行的任务, 代码运行到最 ...
- linux 僵尸进程deffunc,多进程-开启子进程的两种方式,查看进程的pid与ppid,僵尸进程与孤儿进程...
一.开启子进程的两种方式 方式一: # 方式一: from multiprocessing import Process import time def task(name): print(" ...
- Linux解决僵尸进程的几种方式,SIGCHLD信号设置SIG_IGN处理方式等
目录 僵尸进程 解决方式 父进程阻塞调用wait() 父进程非阻塞调用waitpid() SIGCHLD信号 SIG_IGN信号 僵尸进程 我们知道linux下进程有种状态叫做僵尸状态; 原因是父进程 ...
最新文章
- 修改oracle的隐藏参数,oracle隐藏参数查看及修改
- navigator对象介绍
- 诺基亚报告称:到2020年北美电子邮件流量占比将跌至7%
- [css] 用CSS绘制一个红色的爱心
- bzoj3238 [Ahoi2013]差异
- 解决NTKO Office中文文件名保存到服务器时出现乱码的问题
- 在DOS中使用系统还原工具
- 学成在线案例(完整代码)
- ug建模减速器_UG齿轮减速器建模方法
- fpga学习——zynq图像处理中的DVP流接口封装
- 收藏 | 电子元器件图片、名称、符号图形对照
- html在线表格样式模板,纯css实现的table表格样式,教程站常用
- java socket分包粘包 代码_分享java中处理socket通信过程中粘包情况的实例代码
- C语言程序设计今天下雨了吗,C语言编程模拟下雨by张田浩
- thinkpad计算机快捷键,Thinkpad笔记本键盘F1-F12功能键详细介绍
- 微软的软件测试工程师——《微软的软件测试之道》
- 自学GRE要准备些什么
- 哈工大软件构造2022笔记(持续更新----1)
- 想要做”架构师“,一定要会画设计图
- 查询同学选修mysql课程的成绩_mysql-练习题 - osc_wy5qpqnh的个人空间 - OSCHINA - 中文开源技术交流社区...
热门文章
- 计算机应用基础抢答题,计算机应用基础问答题
- HTML用css让input无法使用,html – 是否可以使用CSS设置一个禁用的INPUT元素?
- php 判断是否文件,php 判断是否一个文件的函数is_file()应用举例
- 清华大学python镜像_使用清华开源镜像安装tensorflow
- 覆盖php配置文件,配置 – 用另一个文件覆盖php-fpm池配置值
- python django restful框架_Django RESTful API 实例带你快速上手开发
- vs用c语言写贪吃蛇,熬书几个月,终于编出简易的贪吃蛇了,VS2013
- Android usb 权限广播,android10.0 USB弹窗权限流程解析
- java 调用对象的方法_JAVA调用对象方法的执行过程
- matlab与专业应用,MATLAB应用技术--在电气工程与自动化专业中的应用