20240203进程间通信的7种方式

内核提供的原始通信方式有三种:

①无名管道:没有名字的管道,是一个特殊的文件,并且存储在内存上,不在文件系统中展示,无名管道打开后,会返回两个文件描述符,一个是读端,一个是写端,无名管道只能适用于亲缘进程间的通信,需要在fork之前将管道文件打开,创建子进程后,子进程继承一份管道的文件描述符才能使用该管道,可以完成自己跟自己的通信

②有名管道:有名字的管道文件,会在文件系统中创建一个管道文件,仅仅用来进程间通信,不用于存储数据,可以用于亲缘间通信,也可以用于非亲缘间进程通信

③信号:软件模拟底层硬件的中断操作,信号是软件实现的,中断是硬件实现的,用户可以给某个进程发送信号,一个进程也能给另一个进程发送信号,内核也可以给某个进程发送信号,当一个进程收到信号后的操作有三种,默认,捕获,忽略

SysⅤ提供了三种通信方式:

①消息队列:就是 存放消息的链表,是一系列保存消息的列表,用户进程可以向消息队列中添加消息,也可以向消息队列中读取消息

②共享内存(效率高):允许两个或多个进程共享一个存储区,这一个存储区,可以被两个或多个进程映射到自身的内存空间,一个进程往共享内存中写入信息,其他进程可以读取

③信号量(信号灯集):用于实现同步与互斥,如果要实现进程间数据通信,要和共享内存结合

套接字通信:socket:有两种通信方式,tcp和udp

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值