第6章 线程通信

文章介绍了多种进程间通信机制,包括管道(如匿名和记名)、套接字、信号、信号量、共享内存以及消息队列。这些机制使得不同进程或线程能协同工作,实现数据交换和同步。
摘要由CSDN通过智能技术生成
6.2.1 管道

管道是一个线性字节数组,类似文件,使用文件读写进行访问;在程序里面,创建管道需要使用popen()或者pipe(); 管道的一个重要特点是使用管道的两个线程之间必须存在某种关系, 例如,使用popen需要提供另一端进程的文件名,使用pipe的两个线程分别隶属于父子进程;

6.2.2 记名管道

如果要在两个不相关的线程,如两个不同进程里面的线程,之间进行管道通信,则需要使用记名管道.记名管道与文件系统共享一个名字空间.

6.2.3 套接字

socket是另外一种可以用于进程间通信的机制.

6.3 线程电报:信号

信号就是一个内核对象,或者一个内核数据结构.发送方将该数据结构的内容填写好,并指明该信号的目标进程后,发出特定的软件中断.

6.4 线程旗语:信号量

信号量实际上就是一个简单的整数,一个进程在信号变成0或者1的情况下推进,并且将信号变为1或0来防止其他进程推进.当进程任务完成后,则将信号再改变为0或1,从而允许其他进程执行

6.5 线程拥抱:共享内存

共享内存就是两个进程共同拥有同一片内存,这片内存中的任何内容,二者均可以访问.
在这里插入图片描述

6.6信件发送: 消息队列

新来的消息放在队列尾部, 而读取消息则从队列头部开始
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值