0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

进程间通信的消息队列介绍

学益得智能硬件 来源:学益得智能硬件 2024-04-08 17:27 次阅读

消息队列是一种非常常见的进程间通信方式。

使用消息队列也很简单。首先是创建消息队列,消息队列由内核来维护,创建成功后,用命令ipcs可以看到。一个进程往消息队列中写入数据,另一个进程从消息队列中读取数据。乍一看,跟管道的读写操作一样。

但是它比管道更加实用,发送数据的时候,可以指定数据的类型。也就是说,发出去的数据被分成了两份,一份是具体的数据,另一份用来表示类型。这样即使有多个进程来读取数据,只要各自指定了类型,数据就不会乱。

而管道却没有这么灵活,如果有多个进程读取管道数据,先读的进程就能获得全部数据。

消息队列主要涉及这么几个函数。创建消息队列使用msgget,第一个参数是key,用于区分内核中不同的消息队列,第二个参数表示创建消息队列且消息队列不存在。

发送数据使用msgsnd,参数分别是消息队列标识、发送的数据、数据的长度以及标志位。

接收数据使用msgrecv,多了一个参数表示数据的类型。

运行程序,一个进程写入数据,另一个进程就能把数据读取出来。

这就是进程间通信的消息队列,他比管道和信号更加实用,如果有多个进程需要传输数据,用消息队列更加合适。


审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 消息队列
    +关注

    关注

    0

    文章

    33

    浏览量

    3024

原文标题:进程间通信之消息队列

文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    DLPC150和DMD2010NIR通信协议是什么?

    DLPC150和DMD 2010NIR通信协议是什么?传输的DATA和CLK如何控制每一个微镜单元的翻转呢?能不能提供一些资料呢?
    发表于 02-28 08:14

    JavaWeb消息队列使用指南

    用程序的通信方法,允许异步传输消息,并且具有存储和转发消息的能力。它主要解决以下问题: 异步处理 :允许系统组件异步处理任务,提高响应速度。 解耦系统 :不同系统组件之间通过消息队列通信,降低耦合度。 流量削峰 :在高流量情况下
    的头像 发表于 11-25 09:27 232次阅读

    深入Linux进程管理:提升效率与稳定性的关键方法

    基本概述 2.进程状态 3.进程优先级 4.进程命令 5. 控制作业 6.进程通信 7.使用信
    的头像 发表于 11-22 11:05 445次阅读
    深入Linux<b class='flag-5'>进程</b>管理:提升效率与稳定性的关键方法

    Linux用户身份与进程权限详解

    访问权限是通过进程来体现的。本文主要介绍进程的权限,并通过示例解释用户身份与进程权限之间的关系。说明:本文的演示环境为 ubuntu 16.04。
    的头像 发表于 10-23 11:41 477次阅读
    Linux用户身份与<b class='flag-5'>进程</b>权限详解

    使用TMS320C6474天线接口(AIF)进行DSP通信

    电子发烧友网站提供《使用TMS320C6474天线接口(AIF)进行DSP通信.pdf》资料免费下载
    发表于 10-14 10:56 0次下载
    使用TMS320C6474天线接口(AIF)进行DSP<b class='flag-5'>间</b><b class='flag-5'>通信</b>

    嵌入式环形队列与消息队列的实现原理

    嵌入式环形队列,也称为环形缓冲区或循环队列,是一种先进先出(FIFO)的数据结构,用于在固定大小的存储区域中高效地存储和访问数据。其主要特点包括固定大小的数组和两个指针(头指针和尾指针),分别指向队列的起始位置和结束位置。
    的头像 发表于 09-02 15:29 786次阅读

    玩转RT-Thread之消息队列的应用

    在嵌入式系统开发中,实时处理串口和ADC数据是一项重要的任务。本文将介绍如何在RT-Thread实时操作系统中,利用消息队列来同时处理来自串口和ADC的数据。通过这种方法,我们能够高效地管理和处理
    的头像 发表于 07-23 08:11 718次阅读
    玩转RT-Thread之消息<b class='flag-5'>队列</b>的应用

    ble_mesh节点如何实现以字符串的形式通信

    的想法是node1作为 ble mesh 的配置节点 同时利用bleg功能与手机app通信,从而控制整个ble_mesh 网络) 3,如何配置 使已经配置好的 node 断电后自动回复到之前的配置 4,ble_mesh 节点如何实现以字符串的形式
    发表于 06-25 07:50

    工业控制设备主要有哪些有线通信技术?

          工业控制设备的有线通信技术是实现工业自动化和智能制造的关键技术之一。随着工业4.0和智能制造的快速发展,工业控制设备通信技术也在不断地更新和升级。以下是对工业控制设备
    的头像 发表于 06-23 16:38 1072次阅读

    鸿蒙开发通信与连接:ohos.rpc RPC通信

    本模块提供进程通信能力,包括设备内的进程通信(IPC)和设备
    的头像 发表于 06-21 09:40 677次阅读
    鸿蒙开发<b class='flag-5'>通信</b>与连接:ohos.rpc RPC<b class='flag-5'>通信</b>

    工业控制设备主要有哪些有线通信技术

    工业控制设备的有线通信技术是实现工业自动化和智能制造的关键技术之一。随着工业4.0和智能制造的快速发展,工业控制设备通信技术也在不断地更新和升级。以下是对工业控制设备
    的头像 发表于 06-11 10:51 878次阅读

    进程通信的信号问题分析

    Linux里面信号有60多个,分为标准信号和实时信号,编号从1到31,34到64。不同的内核版本略有区别。
    的头像 发表于 04-07 10:16 489次阅读

    鸿蒙OS开发实例:【工具类封装-emitter组件通信

    `MyEmitterUtil` 是一个针对 HarmonyOS 的事件驱动编程封装类,主要用于组件通信和数据传递。
    的头像 发表于 03-27 22:13 815次阅读

    MCU专属队列功能模块之QueueForMcu应用

    当需要从队列头部获取多个数据,但又不希望数据从队列中删除时,可以使用 Queue_Peek_Array 函数来实现,该函数的参数与返回值与 Queue_Pop_Array 完全相同。
    发表于 03-20 11:44 609次阅读
    MCU专属<b class='flag-5'>队列</b>功能模块之QueueForMcu应用

    PLC通信网关的介绍

    ,实现设备的数据交换与远程控制。本文将介绍PLC通信网关的功能、特点、应用以及工作原理,为读者全面了解PLC通信网关提供参考。 一、PLC通信
    的头像 发表于 03-14 17:03 1168次阅读
    PLC<b class='flag-5'>通信</b>网关的<b class='flag-5'>介绍</b>