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

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

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

進(jìn)程間通信的幾種實(shí)現(xiàn)方式

FPGA之家 ? 來(lái)源:嵌入式藝術(shù) ? 作者:DonGe ? 2022-11-29 09:33 ? 次閱讀

在系統(tǒng)中,隨著我們的進(jìn)程越來(lái)越多,難免不同進(jìn)程之間要互相傳輸一些數(shù)據(jù),那么這個(gè)時(shí)候該怎么辦呢?

下面主要簡(jiǎn)單了解一下,進(jìn)程間通信(InterProcess Communication,IPC)的幾種實(shí)現(xiàn)方式!

1、管道模型

管道模型與軟件生命周期模型——瀑布模型(Waterfall Model)很相似。

所謂的瀑布模型,其實(shí)就是將整個(gè)軟件開(kāi)發(fā)過(guò)程分成多個(gè)階段,往往是上一個(gè)階段完全做完,才將輸出結(jié)果交給下一個(gè)階段。

ef3c1e2c-6f7b-11ed-8abf-dac502259ad0.pngimage-20220922134815245

還記得咱們最初學(xué) Linux 命令的時(shí)候,有下面這樣一行命令:

ps -ef | grep 關(guān)鍵字 | awk '{print $2}' | xargs kill -9

這里面的豎線“|”就是一個(gè)管道。它會(huì)將前一個(gè)命令的輸出,作為后一個(gè)命令的輸入。

從管道的這個(gè)名稱可以看出來(lái),管道是一種單向傳輸數(shù)據(jù)的機(jī)制,它其實(shí)是一段緩存,里面的數(shù)據(jù)只能從一端寫(xiě)入,從另一端讀出。如果想互相通信,我們需要?jiǎng)?chuàng)建兩個(gè)管道才行。

管道又可以分為匿名管道和命名管道!

1.1 匿名管道

如上命令:

ps -ef | grep 關(guān)鍵字 | awk '{print $2}' | xargs kill -9

匿名管道:用"|” 表示的管道,意思就是這個(gè)類型的管道沒(méi)有名字,用完了就銷毀了。豎線代表的管道隨著命令的執(zhí)行自動(dòng)創(chuàng)建、自動(dòng)銷毀。用戶甚至都不知道自己在用管道這種技術(shù),就已經(jīng)解決了問(wèn)題。

1.2 命名管道

命名管道,這個(gè)類型的管道需要通過(guò) mkfifo 命令顯式地創(chuàng)建。

mkfifo donge#建立一個(gè)管道

donge就是這個(gè)管道的名稱。管道以文件的形式存在,這也符合 Linux 里面一切皆文件的原則。

下面我們看一下文件類型

ls -l
prw-rw-r-- 1 dong dong     0 Sep 28 17:09 donge

可以看到,這個(gè)文件的類型是 p,就是 pipe 的意思。

往管道中寫(xiě)入數(shù)據(jù)

echo "hello world" > donge

這個(gè)時(shí)候,管道里面的內(nèi)容沒(méi)有被讀出,這個(gè)命令就是停在這里的,即進(jìn)程被堵塞。

這說(shuō)明當(dāng)一個(gè)項(xiàng)目組要把它的輸出交接給另一個(gè)項(xiàng)目組做輸入,當(dāng)沒(méi)有交接完畢的時(shí)候,前一個(gè)項(xiàng)目組是不能撒手不管的。

重新打開(kāi)一個(gè)終端,讀出管道數(shù)據(jù)

cat < hello 
hello world

一方面,我們能夠看到,管道里面的內(nèi)容被讀取出來(lái),打印到了終端上;

另一方面,echo 那個(gè)命令正常退出了,也即交接完畢,前一個(gè)項(xiàng)目組就完成了使命,可以解散了。

管道通信,我們可以看出,瀑布模型的開(kāi)發(fā)流程效率比較低下,因?yàn)閳F(tuán)隊(duì)之間無(wú)法頻繁地溝通。而且,管道的使用模式,也不適合進(jìn)程間頻繁的交換數(shù)據(jù)

2、消息隊(duì)列

ef560bd4-6f7b-11ed-8abf-dac502259ad0.pngimage-20220922135603302

消息隊(duì)列可以理解為發(fā)郵件,每一封郵件都視為一個(gè)獨(dú)立的數(shù)據(jù)單元,也就是消息體,每個(gè)消息體都是固定大小的存儲(chǔ)塊,在字節(jié)流上不連續(xù)

這個(gè)消息結(jié)構(gòu)的定義我寫(xiě)在下面了。這里面的類型 type 和正文 text 沒(méi)有強(qiáng)制規(guī)定,只要消息的發(fā)送方和接收方約定好即可。

struct msg_buffer {
    long mtype;
    char mtext[1024];
};

2.1 創(chuàng)建消息隊(duì)列

消息隊(duì)列的創(chuàng)建,需要用到msgget函數(shù)

int msgget(key_t key, int msgflg);
  • key:該參數(shù)是消息隊(duì)列的唯一標(biāo)識(shí),由ftok生成。

  • msgflg:取值有以下幾個(gè)選擇:IPC_CREAT、IPC_EXCL ,這兩個(gè)參數(shù)詳細(xì)的作用可以man msgflg看詳細(xì)介紹。

  • 返回值:返回一個(gè)近乎唯一的Message queue id

那么,key是如何由ftok生成的呢?

我們可以指定一個(gè)文件,調(diào)用ftok ,它會(huì)根據(jù)這個(gè)文件的 inode,生成一個(gè)近乎唯一的 key。

key_t ftok(const char *pathname, int proj_id);
  • pathname:文件信息,必須指定在一個(gè)存在的,可訪問(wèn)的文件
  • proj_id8bit的數(shù)據(jù),0-255隨意設(shè)定

這樣就可以獲得一個(gè)近乎唯一的key了!

只要在這個(gè)消息隊(duì)列的生命周期內(nèi),這個(gè)文件不要被刪除就可以了。只要不刪除,無(wú)論什么時(shí)刻,再調(diào)用 ftok,也會(huì)得到同樣的 key。

綜上,創(chuàng)建一個(gè)消息隊(duì)列只需兩步:

①:ftok生成一個(gè)key

②:msgget生成一個(gè)消息隊(duì)列的ID

如下:

#include 
#include 
#include 
 
 
int main() {
  int messagequeueid;
  key_t key;
 
 
  if((key = ftok("/root/messagequeue/messagequeuekey", 1)) < 0)
  {
      perror("ftok error");
      exit(1);
  }
 
 
  printf("Message Queue key: %d.
", key);
 
 
  if ((messagequeueid = msgget(key, IPC_CREAT|0777)) == -1)
  {
      perror("msgget error");
      exit(1);
  }
 
 
  printf("Message queue id: %d.
", messagequeueid);
}

ftok要指定一個(gè)存在的文件,所以我們?cè)趫?zhí)行之前,需要?jiǎng)?chuàng)建該文件。

查看消息隊(duì)列

System V IPC 體系有一個(gè)統(tǒng)一的命令行工具:ipcmkipcsipcrm 用于創(chuàng)建、查看和刪除 IPC 對(duì)象。

查看創(chuàng)建的IPC對(duì)象:ipcs -q

dong@ubuntu:~//Interprocess_Communication$ ipcs 

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    
0x01110005 0          dong       777        0            0           

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      

------ Semaphore Arrays --------
key        semid      owner      perms      nsems

2.2 發(fā)送消息

消息隊(duì)列發(fā)送消息,主要調(diào)用msgsnd 函數(shù)

int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
  • msqid:該參數(shù)是msgget所得到的message queueid
  • msgp:消息結(jié)構(gòu)體
struct msg_buffer {
    long mtype;
    char mtext[1024];
};
  • msgsz:表示消息結(jié)構(gòu)體中,mtext最大長(zhǎng)度
  • msgflg:一位掩碼,可取值有:IPC_NOWAIT、MSG_COPYMSG_EXCEPT、MSG_NOERROR,取值說(shuō)明可見(jiàn)man msgsnd

2.3 接收消息

消息隊(duì)列接收消息,主要調(diào)用msgrcv 函數(shù)

ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,
                      int msgflg);
  • msqid:該參數(shù)是msgget所得到的message queueid
  • msgp:消息結(jié)構(gòu)體
  • msgsz:可接收數(shù)據(jù)最大長(zhǎng)度
  • msgflg:一位掩碼,可取值有:IPC_NOWAIT、MSG_COPYMSG_EXCEPT、MSG_NOERROR,取值說(shuō)明可見(jiàn)man msgsnd

有了消息這種模型,兩個(gè)進(jìn)程之間的通信就像咱們平時(shí)發(fā)郵件一樣,你來(lái)一封,我回一封,可以頻繁溝通了。

3、共享內(nèi)存

ef63ce5e-6f7b-11ed-8abf-dac502259ad0.pngimage-20220924172026172

怎么理解共享內(nèi)存呢?

我們知道每個(gè)進(jìn)程都有自己獨(dú)立的虛擬內(nèi)存空間不同的進(jìn)程的虛擬內(nèi)存空間映射到不同的物理內(nèi)存中去。這個(gè)進(jìn)程訪問(wèn) A 地址和另一個(gè)進(jìn)程訪問(wèn) A 地址,其實(shí)訪問(wèn)的是不同的物理內(nèi)存地址,對(duì)于數(shù)據(jù)的增刪查改互不影響。

但是,咱們是不是可以變通一下,拿出一塊虛擬地址空間來(lái),映射到相同的物理內(nèi)存中。這樣這個(gè)進(jìn)程寫(xiě)入的東西,另外一個(gè)進(jìn)程馬上就能看到了,都不需要拷貝來(lái)拷貝去,傳來(lái)傳去。

相比于消息隊(duì)列,共享內(nèi)存的優(yōu)勢(shì)在哪里呢?

  • 大數(shù)據(jù)傳輸:如果批量的大數(shù)據(jù)進(jìn)行傳輸,使用郵件的方式,來(lái)去發(fā)送不及時(shí),并且大小也有限制
  • 實(shí)時(shí)性:用共享內(nèi)存,其可以大大節(jié)省通信時(shí)間

3.1 創(chuàng)建共享內(nèi)存

我們可以創(chuàng)建一個(gè)共享內(nèi)存,調(diào)用 shmget

int shmget(key_t key, size_t size, int shmflg);
  • key:和 msgget 里面的 key 一樣,都是唯一定位一個(gè)共享內(nèi)存的對(duì)象
  • size:共享內(nèi)存的大小
  • shmflg:其值可以取:IPC_CREAT、IPC_EXCL、SHM_HUGETLB、SHM_HUGE_2MB

返回值:共享內(nèi)存的唯一ID

創(chuàng)建完畢之后,我們可以通過(guò) ipcs 命令查看這個(gè)共享內(nèi)存。

#ipcs --shmems
 
------ Shared Memory Segments ------ --------
key        shmid    owner perms    bytes nattch status
0x00000000 19398656 marc  600    1048576 2      dest

3.2 訪問(wèn)共享內(nèi)存

接下來(lái),如果一個(gè)進(jìn)程想要訪問(wèn)這一段共享內(nèi)存,需要將這個(gè)內(nèi)存加載到自己的虛擬地址空間的某個(gè)位置,通過(guò) shmat 函數(shù),就是 attach 的意思。

void *shmat(int shmid, const void *shmaddr, int shmflg);
  • shmid:標(biāo)識(shí)一個(gè)共享內(nèi)存段的唯一ID
  • shmaddr:就是要指定 attach 到這個(gè)地方。但是這個(gè)地址的設(shè)定難度比較大,除非對(duì)于內(nèi)存布局非常熟悉,否則可能會(huì) attach到一個(gè)非法地址。所以,通常的做法是將 shmaddr設(shè)為 NULL,讓內(nèi)核選一個(gè)合適的地址。
  • shmflg:一位掩碼,可取值:SHM_EXEC、SHM_RDONLY、SHM_REMAP。

返回值:為所連接的實(shí)際地址

3.3 關(guān)閉共享內(nèi)存

如果共享內(nèi)存使用完畢,可以通過(guò) shmdt 解除綁定,然后通過(guò) shmctl,將 cmd 設(shè)置為 IPC_RMID,從而刪除這個(gè)共享內(nèi)存對(duì)象。

int shmdt(void *addr); 
int shmctl(int shmid, int cmd, struct shmid_ds *buf);

shmdt的參數(shù)addr:為shmat的返回值,表示卸載一片共享內(nèi)存

shmctl的參數(shù):

  • shm_idshmget的返回值,為共享內(nèi)存的唯一ID
  • cmd:取值有:IPC_STAT、IPC_RMID等,見(jiàn):man shmctl
  • buf:共享內(nèi)存管理結(jié)構(gòu)體。

3.4 信號(hào)

這里你是不是有一個(gè)疑問(wèn),如果兩個(gè)進(jìn)程 attach 同一個(gè)共享內(nèi)存,大家都往里面寫(xiě)東西,很有可能就沖突了。例如兩個(gè)進(jìn)程都同時(shí)寫(xiě)一個(gè)地址,那先寫(xiě)的那個(gè)進(jìn)程會(huì)發(fā)現(xiàn)內(nèi)容被別人覆蓋了。

所以,這里就需要一種保護(hù)機(jī)制,使得同一個(gè)共享的資源,同時(shí)只能被一個(gè)進(jìn)程訪問(wèn)。在 System V IPC 進(jìn)程間通信機(jī)制體系中,早就想好了應(yīng)對(duì)辦法,就是信號(hào)量(Semaphore。因此,信號(hào)量和共享內(nèi)存往往要配合使用。

信號(hào)量和共享內(nèi)存都比較復(fù)雜,兩者還要結(jié)合起來(lái)用,就更加復(fù)雜,它們內(nèi)核的機(jī)制就更加復(fù)雜。這一節(jié)我們先不講。

4、信號(hào)

上面講的進(jìn)程間通信的方式,都是常規(guī)狀態(tài)下的工作模式,對(duì)應(yīng)到咱們平時(shí)的工作交接,收發(fā)郵件、聯(lián)合開(kāi)發(fā)等,其實(shí)還有一種異常情況下的工作模式

例如出現(xiàn)線上系統(tǒng)故障,這個(gè)時(shí)候,什么流程都來(lái)不及了,不可能發(fā)郵件,也來(lái)不及開(kāi)會(huì),所有的架構(gòu)師、開(kāi)發(fā)、運(yùn)維都要被通知緊急出動(dòng)。所以,7 乘 24 小時(shí)不間斷執(zhí)行的系統(tǒng)都需要有告警系統(tǒng),一旦出事情,就要通知到人,哪怕是半夜,也要電話叫起來(lái),處理故障。

信號(hào)可以在任何時(shí)候發(fā)送給某一進(jìn)程,進(jìn)程需要為這個(gè)信號(hào)配置信號(hào)處理函數(shù)。

Linux所支持的異常信號(hào)如下:

 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

當(dāng)某個(gè)信號(hào)發(fā)生的時(shí)候,就默認(rèn)執(zhí)行這個(gè)函數(shù)就可以了。這就相當(dāng)于咱們運(yùn)維一個(gè)系統(tǒng)應(yīng)急手冊(cè),當(dāng)遇到什么情況,做什么事情,都事先準(zhǔn)備好,出了事情照著做就可以了。

有點(diǎn)類似于異常中斷……

審核編輯:郭婷


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7134

    瀏覽量

    89451
  • 進(jìn)程
    +關(guān)注

    關(guān)注

    0

    文章

    204

    瀏覽量

    13979

原文標(biāo)題:原來(lái)\進(jìn)程間通信/是這么回事......

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    n母接頭的安裝方式有哪幾種

    等多個(gè)領(lǐng)域得到了廣泛應(yīng)用。關(guān)于N型母接頭的安裝方式,雖然具體的安裝步驟可能因產(chǎn)品型號(hào)和制造商的不同而有所差異,但通??梢詺w納為以下幾種主要方式:  這是N型母接
    的頭像 發(fā)表于 11-13 09:23 ?394次閱讀
    n母接頭的安裝<b class='flag-5'>方式</b>有哪<b class='flag-5'>幾種</b>

    socket 加密通信實(shí)現(xiàn)方式

    在網(wǎng)絡(luò)通信中,數(shù)據(jù)的安全性至關(guān)重要。Socket 編程作為網(wǎng)絡(luò)通信的基礎(chǔ),實(shí)現(xiàn)加密通信是保護(hù)數(shù)據(jù)不被竊取或篡改的重要手段。 1. SSL/TLS 加密 SSL(Secure Socke
    的頭像 發(fā)表于 11-12 14:18 ?559次閱讀

    實(shí)現(xiàn)MCU與傳感器的通信方式

    在現(xiàn)代電子系統(tǒng)中,微控制器單元(MCU)與傳感器的通信實(shí)現(xiàn)智能控制和數(shù)據(jù)采集的基礎(chǔ)。隨著技術(shù)的發(fā)展,MCU與傳感器之間的通信方式也在不斷進(jìn)化,以滿足更高的數(shù)據(jù)傳輸速率、更低的功耗和更
    的頭像 發(fā)表于 11-01 13:43 ?485次閱讀

    控制閥有哪幾種控制方式

    控制閥是工業(yè)自動(dòng)化系統(tǒng)中的重要組成部分,其主要作用是控制流體的流量、壓力、溫度等參數(shù),以滿足生產(chǎn)過(guò)程的需要??刂崎y的控制方式有很多種,不同的控制方式適用于不同的應(yīng)用場(chǎng)景。本文將詳細(xì)介紹控制閥的幾種
    的頭像 發(fā)表于 06-30 09:51 ?994次閱讀

    ble_mesh節(jié)點(diǎn)如何實(shí)現(xiàn)以字符串的形式通信?

    的想法是node1作為 ble mesh 的配置節(jié)點(diǎn) 同時(shí)利用bleg功能與手機(jī)app通信,從而控制整個(gè)ble_mesh 網(wǎng)絡(luò)) 3,如何配置 使已經(jīng)配置好的 node 斷電后自動(dòng)回復(fù)到之前的配置 4,ble_mesh 節(jié)點(diǎn)如何實(shí)現(xiàn)
    發(fā)表于 06-25 07:50

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

    ? ? ? 工業(yè)控制設(shè)備的有線通信技術(shù)是實(shí)現(xiàn)工業(yè)自動(dòng)化和智能制造的關(guān)鍵技術(shù)之一。隨著工業(yè)4.0和智能制造的快速發(fā)展,工業(yè)控制設(shè)備通信
    的頭像 發(fā)表于 06-23 16:38 ?951次閱讀

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

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

    連接器的連接方式幾種

    按照其連接方式可以分為以下幾種: 插頭式連接器:插頭式連接器是一種常見(jiàn)的連接方式,其特點(diǎn)是插頭和插座之間通過(guò)機(jī)械力實(shí)現(xiàn)連接。插頭式連接器廣泛應(yīng)用于電子設(shè)備、
    的頭像 發(fā)表于 06-20 09:21 ?1671次閱讀

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

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

    串口屏的幾種安裝方式

    串口屏的幾種安裝方式
    的頭像 發(fā)表于 05-10 11:28 ?1660次閱讀

    進(jìn)程通信的消息隊(duì)列介紹

    消息隊(duì)列是一種非常常見(jiàn)的進(jìn)程通信方式
    的頭像 發(fā)表于 04-08 17:27 ?339次閱讀

    進(jìn)程通信的信號(hào)問(wèn)題分析

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

    java實(shí)現(xiàn)多線程的幾種方式

    Java實(shí)現(xiàn)多線程的幾種方式 多線程是指程序中包含了兩個(gè)或以上的線程,每個(gè)線程都可以并行執(zhí)行不同的任務(wù)或操作。Java中的多線程可以提高程序的效率和性能,使得程序可以同時(shí)處理多個(gè)任務(wù)。 Java提供
    的頭像 發(fā)表于 03-14 16:55 ?772次閱讀

    鴻蒙OS跨進(jìn)程IPC與RPC通信

    通過(guò)此代理讀寫(xiě)數(shù)據(jù)來(lái)實(shí)現(xiàn)進(jìn)程的數(shù)據(jù)通信,更具體的講,首先請(qǐng)求服務(wù)的(Client)一端會(huì)建立一個(gè)服務(wù)提供端(Server)的代理對(duì)象,這個(gè)代理對(duì)象具備和服務(wù)提供端(Server)一樣
    發(fā)表于 02-17 14:20

    HarmonyOS跨進(jìn)程通信—IPC與RPC通信開(kāi)發(fā)

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