RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

進程間通信的消息隊列介紹

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-04-08 17:27 ? 次閱讀

消息隊列是一種非常常見的進程間通信方式。

使用消息隊列也很簡單。首先是創(chuàng)建消息隊列,消息隊列由內(nèi)核來維護,創(chuàng)建成功后,用命令ipcs可以看到。一個進程往消息隊列中寫入數(shù)據(jù),另一個進程從消息隊列中讀取數(shù)據(jù)。乍一看,跟管道的讀寫操作一樣。

但是它比管道更加實用,發(fā)送數(shù)據(jù)的時候,可以指定數(shù)據(jù)的類型。也就是說,發(fā)出去的數(shù)據(jù)被分成了兩份,一份是具體的數(shù)據(jù),另一份用來表示類型。這樣即使有多個進程來讀取數(shù)據(jù),只要各自指定了類型,數(shù)據(jù)就不會亂。

而管道卻沒有這么靈活,如果有多個進程讀取管道數(shù)據(jù),先讀的進程就能獲得全部數(shù)據(jù)。

消息隊列主要涉及這么幾個函數(shù)。創(chuàng)建消息隊列使用msgget,第一個參數(shù)是key,用于區(qū)分內(nèi)核中不同的消息隊列,第二個參數(shù)表示創(chuàng)建消息隊列且消息隊列不存在。

發(fā)送數(shù)據(jù)使用msgsnd,參數(shù)分別是消息隊列標識、發(fā)送的數(shù)據(jù)、數(shù)據(jù)的長度以及標志位。

接收數(shù)據(jù)使用msgrecv,多了一個參數(shù)表示數(shù)據(jù)的類型。

運行程序,一個進程寫入數(shù)據(jù),另一個進程就能把數(shù)據(jù)讀取出來。

這就是進程間通信的消息隊列,他比管道和信號更加實用,如果有多個進程需要傳輸數(shù)據(jù),用消息隊列更加合適。


審核編輯:劉清
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 消息隊列
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    2972

原文標題:進程間通信之消息隊列

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    JavaWeb消息隊列使用指南

    用程序的通信方法,允許異步傳輸消息,并且具有存儲和轉(zhuǎn)發(fā)消息的能力。它主要解決以下問題: 異步處理 :允許系統(tǒng)組件異步處理任務(wù),提高響應(yīng)速度。 解耦系統(tǒng) :不同系統(tǒng)組件之間通過消息隊列通信,降低耦合度。 流量削峰 :在高流量情況下
    的頭像 發(fā)表于 11-25 09:27 ?139次閱讀

    深入Linux進程管理:提升效率與穩(wěn)定性的關(guān)鍵方法

    基本概述 2.進程狀態(tài) 3.進程優(yōu)先級 4.進程命令 5. 控制作業(yè) 6.進程通信 7.使用信
    的頭像 發(fā)表于 11-22 11:05 ?202次閱讀
    深入Linux<b class='flag-5'>進程</b>管理:提升效率與穩(wěn)定性的關(guān)鍵方法

    嵌入式環(huán)形隊列與消息隊列的實現(xiàn)原理

    嵌入式環(huán)形隊列,也稱為環(huán)形緩沖區(qū)或循環(huán)隊列,是一種先進先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),用于在固定大小的存儲區(qū)域中高效地存儲和訪問數(shù)據(jù)。其主要特點包括固定大小的數(shù)組和兩個指針(頭指針和尾指針),分別指向隊列的起始位置和結(jié)束位置。
    的頭像 發(fā)表于 09-02 15:29 ?476次閱讀

    玩轉(zhuǎn)RT-Thread之消息隊列的應(yīng)用

    在嵌入式系統(tǒng)開發(fā)中,實時處理串口和ADC數(shù)據(jù)是一項重要的任務(wù)。本文將介紹如何在RT-Thread實時操作系統(tǒng)中,利用消息隊列來同時處理來自串口和ADC的數(shù)據(jù)。通過這種方法,我們能夠高效地管理和處理
    的頭像 發(fā)表于 07-23 08:11 ?608次閱讀
    玩轉(zhuǎn)RT-Thread之消息<b class='flag-5'>隊列</b>的應(yīng)用

    工業(yè)控制設(shè)備主要有哪些有線通信技術(shù)?

    ? ? ? 工業(yè)控制設(shè)備的有線通信技術(shù)是實現(xiàn)工業(yè)自動化和智能制造的關(guān)鍵技術(shù)之一。隨著工業(yè)4.0和智能制造的快速發(fā)展,工業(yè)控制設(shè)備通信技術(shù)也在不斷地更新和升級。以下是對工業(yè)控制設(shè)備
    的頭像 發(fā)表于 06-23 16:38 ?850次閱讀

    鴻蒙開發(fā)通信與連接:ohos.rpc RPC通信

    本模塊提供進程通信能力,包括設(shè)備內(nèi)的進程通信(IPC)和設(shè)備
    的頭像 發(fā)表于 06-21 09:40 ?536次閱讀
    鴻蒙開發(fā)<b class='flag-5'>通信</b>與連接:ohos.rpc RPC<b class='flag-5'>通信</b>

    工業(yè)控制設(shè)備主要有哪些有線通信技術(shù)

    工業(yè)控制設(shè)備的有線通信技術(shù)是實現(xiàn)工業(yè)自動化和智能制造的關(guān)鍵技術(shù)之一。隨著工業(yè)4.0和智能制造的快速發(fā)展,工業(yè)控制設(shè)備通信技術(shù)也在不斷地更新和升級。以下是對工業(yè)控制設(shè)備
    的頭像 發(fā)表于 06-11 10:51 ?697次閱讀

    進程通信的信號問題分析

    Linux里面信號有60多個,分為標準信號和實時信號,編號從1到31,34到64。不同的內(nèi)核版本略有區(qū)別。
    的頭像 發(fā)表于 04-07 10:16 ?406次閱讀

    linux管道概述

    一、進程通信(IPC)介紹 進程通信(IPC,I
    的頭像 發(fā)表于 02-18 14:51 ?492次閱讀
    linux管道概述

    鴻蒙OS跨進程IPC與RPC通信

    通過此代理讀寫數(shù)據(jù)來實現(xiàn)進程的數(shù)據(jù)通信,更具體的講,首先請求服務(wù)的(Client)一端會建立一個服務(wù)提供端(Server)的代理對象,這個代理對象具備和服務(wù)提供端(Server)一樣的功能,若想訪問
    發(fā)表于 02-17 14:20

    HarmonyOS跨進程通信—IPC與RPC通信開發(fā)

    一、IPC與RPC通信概述 基本概念 IPC(Inter-Process Communication)與RPC(Remote Procedure Call)用于實現(xiàn)跨進程通信,不同的是前者
    的頭像 發(fā)表于 02-02 17:47 ?1274次閱讀
    HarmonyOS跨<b class='flag-5'>進程</b><b class='flag-5'>通信</b>—IPC與RPC<b class='flag-5'>通信</b>開發(fā)

    裸機中環(huán)形隊列與RTOS中消息隊列有何區(qū)別呢?

    “環(huán)形隊列”和“消息隊列”在嵌入式領(lǐng)域有應(yīng)用非常廣泛,相信有經(jīng)驗的嵌入式軟件工程師對它們都不陌生。
    的頭像 發(fā)表于 01-26 09:38 ?708次閱讀
    裸機中環(huán)形<b class='flag-5'>隊列</b>與RTOS中消息<b class='flag-5'>隊列</b>有何區(qū)別呢?

    labview 隊列最前端插入的應(yīng)用

    起到很多作用。本文將詳細介紹LabVIEW隊列的應(yīng)用,特別是在最前端插入數(shù)據(jù)的情況下。 首先,讓我們了解LabVIEW隊列的基本概念。隊列是一種數(shù)據(jù)結(jié)構(gòu),允許在一端插入元素,并在另一端
    的頭像 發(fā)表于 01-08 11:45 ?1183次閱讀

    labview隊列有什么實際作用

    傳遞和信息共享。下面將詳細介紹LabVIEW隊列的實際作用及其優(yōu)勢。 一、實時數(shù)據(jù)處理 LabVIEW隊列可以用于實時數(shù)據(jù)處理,尤其是在需要對大量數(shù)據(jù)進行實時采集和處理的應(yīng)用中。通過使用隊列
    的頭像 發(fā)表于 01-05 16:42 ?1581次閱讀

    mcu線程和進程的區(qū)別是什么

    MCU線程和進程是嵌入式系統(tǒng)中常見的并行執(zhí)行的概念,它們之間有許多區(qū)別,包括線程與進程的定義、資源管理、通信機制、執(zhí)行方式等等。下面將詳細介紹MCU線程和
    的頭像 發(fā)表于 01-04 10:45 ?741次閱讀
    RM新时代网站-首页