当前位置: 首页 > news >正文

分类信息网站建设方案app拉新推广代理

分类信息网站建设方案,app拉新推广代理,中国站长之家官网,营销型网站服务公司进程间通信 - 通道 什么是管道? 进程间的通信方式有五种,分别为:管道、信号量、共享内存、消息队列和套接字。 管道:本质上就是一个文件,前面的进程以写方式打开文件,后面的进程以读方式打开。这样前面写完后面读,于…

进程间通信 - 通道

什么是管道?

进程间的通信方式有五种,分别为:管道、信号量、共享内存、消息队列套接字

管道:本质上就是一个文件,前面的进程以写方式打开文件,后面的进程以读方式打开。这样前面写完后面读,于是就实现了通信。即把一个进程的输出直接连接在另外一个进程的输入。

虽然实现形态上是一个特殊文件,对管道的读写可以使用普通的read(),write()函数,但管道不属于任何文件系统(管道本身并不占用磁盘或者其他外部存储的空间)。

在Linux的实现上,它占用的是内存空间,只存在于内存中。所以,Linux上的管道就是一个操作方式为文件的内存缓冲区。即管道本质上是内核的一块缓存

管道分为有名管道和无名管道两种,它们的区别是:

  • 无名管道:又称为匿名管道(Anonymous Pipe),只能在亲缘进程(是指有同一个祖先如父子进程、兄弟进程)之间进行通信。
  • 有名管道:又称为命名管道(Named Pipe),可以在任意两个进程之间进行通信。

管道通信模式

通信模式分为:

  • 单工:数据只在一个方向上传输,不能实现双方通信
  • 半双工(切换的单工):允许数据在两个方向上传输,但是同一时间数据只能在同一个方向上传输
  • 全双工:允许数据在两个方向上同时传输

管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道,

管道的特点

  1. 管道是半双工的
  2. 管道提供流式服务,字节流通信,没有消息边界,多个进程同时发送的字节流混在一起,则无法分辨消息,所有管道一般用于两个进程之间通信。
  3. 管道的内容读完后不会保存
  4. 一般而言,进程退出,管道释放,所以管道的生命周期跟随进程
  5. 一般而言,内核会对管道操作进行同步与互斥
  6. 匿名管道一般用于亲缘进程间通信,命名管道一般用于两个无关联进程间通信

匿名通道(PIPE)

是一种亲缘进程间的通信方法。匿名管道存在于kernel(内核)中,A,B必须具有亲缘关系进程。同一时刻,只能有一个写端或一个读端。

父子进程间,只要是**fork()**出来的,就会完美复制父进程的数据。如果在fork0)之前创建管道,并获取管道的操作接口,子进程就能使用管道。

命名管道(FIFO)

**命名管道(Named Pipe)**是一种独立进程之间通信的机制,用于在无关的进程之间进行数据传输。

与匿名管道不同,命名管道不需要亲缘关系的进程之间,也不需要共享同一终端。任意进程可以通过打开命名管道的读取端和写入端来与其进行通信。

命名管道通过在文件系统中创建一个特殊的文件来实现通信。这个特殊的文件被称为FIFO(First-inFirst-out)或命名管道。

命名管道通信的原理:

  • 和匿名管道一样,想让双方通信,必须先让双方看到同一份资源!它和匿名管道本质是一样的,只是看到资源的方式不同。
  • 匿名管道是通过父子进程继承来看到同一份资源的,也叫做管道文件,这个文件是纯内存级的,所以没有名字,叫做匿名管道。
  • 而命名管道是在磁盘上有一个特殊的文件,这个文件可以被打开,但是打开后不会将内存中的数据刷新到磁盘。在磁盘上就有了路径,而路径是唯一的,所以双方就可以通过文件的路径 来看到同一份资源,即管道文件。

命名管道的特点:

  1. 命名管道可以使互不相关的两个独立进程实现彼此通信
  2. 命名管道可以通过路径名来指出,并且在文件系统中是可见的。在建立管道之后,两进程就可以把它当作普通文件进行读写,使用非常方便。
  3. FIFO严格遵循先进先出原则,对管道及FIFO的读总是从开始处返回数据,对它们的写则把数据添加到末尾。命名管道不支持如Iseek0)等文件的定位操作。
  4. 命名管道依然在内核态内存中
  5. 命名管道在文件系统中有节点(即在文件系统中可以找到)
  6. 命名管道严格遵循先进先出原则
  7. 命名管道不能使用文件重定位的函数lseek()
  8. 命名管道可以用在亲缘和非亲缘进程间(一般用于非亲缘进程间通信)

管道命名

在Linux shell中执行命令,经常会将上一个命令的输出作为下一个命令的输入,由多个命令配合完成一件事情。而这就是通过管道来实现的。|这个竖线就是管道符号

Is-llgrep string //grep是抓取指令

●1s命令(其实也是一个进程)会把当前目录中的文件都列出来但它不会直接输出,而是把要输出到屏幕上的数据通过管道输出到grep这个进程中,作为grep这个进程的输入;

●然后这个进程对输入的信息进行筛选(grep的作用),把存在string的信息的字符串(以行为单位)打印在屏幕上。

在这里插入图片描述

http://www.ritt.cn/news/16882.html

相关文章:

  • 微信营销的策略有哪些代哥seo
  • 宁波网站推广找哪家公司今日头条十大新闻最新
  • 网站开发 浏览器线上营销渠道
  • 高校机关党委网站建设社群营销的方法和技巧
  • 重庆建设摩托车价格泽成杭州seo网站推广排名
  • 微网站与微信的关系网文推广怎么做
  • 怎么建设一个国外的网站nba排名榜
  • dw做网站的导航栏免费注册个人网站不花钱
  • 广州营销网站建设靠谱百度网站入口
  • 买个网站域名多少钱一年青岛网站关键词排名优化
  • 做网站时候图片和视频放在哪里韶山百度seo
  • 网站建设文化报价网络宣传的方法有哪些
  • 抖音seo搜索引擎优化网站关键字优化公司
  • 国内做外贸网站的有哪些兰州seo优化入门
  • 网站后台添加新闻企业网站怎么建立
  • 正能量网站下载电商网站首页
  • 做电子杂志用什么网站今日重大财经新闻
  • 做会计需要了解的网站及软件无锡网站制作推广
  • 网站开发工程师6网络营销的内容主要有哪些
  • 做电影网站会不会涉及版权问题怎么做电商创业
  • 建立网站的基本过程seo就业前景如何
  • 长春网站建设培训发新闻稿平台
  • 个人优秀网站关键词举例
  • 重庆cms建站系统seo没什么作用了
  • 哪方面网站微信如何引流推广精准加人
  • 网站制作一条龙seo推广顾问
  • 网站广告的图片怎么做企点
  • 浦城 建网站百度手机端推广
  • 做网站公司工资优就业seo课程学多久
  • 南阳做玉器网站app运营方案