进程间的通信方式
Published on 2022-07-27 14:36 in 分类: Linux with 萧海~
分类: Linux

进程间的通信方式

    无名管道,有名管道,信号,消息队列,共享内存,socket

    项目Value
    无名管道最简单,数据只能读取一次,半双工,匿名管道只能是有血缘关系间的通信
    有名管道用于没有血缘关系间的进程通信
    信号简单,携带的信息量少,使用在特定的场景,优先级高。建议不要使用信号量在进程间的通信,因为信号的优先级高会打破原有进程的执行过程
    消息队列消息队列是消息的链表,存放在内存中,由内核维护 消息队列的特点 1、消息队列中的消息是有类型的。 2、消息队列中的消息是有格式的。 3、消息队列可以实现消息的随机查询。消息不一定要以先进先出的次序读取,编程时可以按消息的类型读取。4、消息队列允许一个或多个进程向它写入或者读取消息。 5、与无名管道、命名管道一样,从消息队列中读出消息,消息队列中对应的数据都会被删除。6、每个消息队列都有消息队列标识符,消息队列的标识符在整个系统中是唯一的。7、只有内核重启或人工删除消息队列时,该消息队列才会被删除。若不人工删除消息队列,消息队列会一直存在于系统中。
    共享内存效率高,不需要太多次数据拷贝,可以直接读写,缺点:不能保证数据同步,只能借助信号量保证同步
    socket主要用于网络中的进程间通信,通信过程以及数据复杂,但安全可靠
    posted @   萧海~  阅读(32)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
    · Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
    · 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
    · 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
    · 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
    点击右上角即可分享
    微信分享提示
    电磁波切换