[發明專利]進程間通信IPC的實現方法和裝置有效
| 申請號: | 201810646525.0 | 申請日: | 2018-06-21 |
| 公開(公告)號: | CN108984317B | 公開(公告)日: | 2021-07-13 |
| 發明(設計)人: | 趙肖勇;康高杰 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京恒博知識產權代理有限公司 11528 | 代理人: | 范勝祥 |
| 地址: | 100088 北京市西城區新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 進程 通信 ipc 實現 方法 裝置 | ||
本發明公開了進程間通信IPC的實現方法和裝置。所述方法包括:在用于進程間通信的共享內存中注冊與自身對應的IPC對象;將消息發送給與通信目標對應的IPC對象,和/或通過與自身對應的IPC對象接收通信目標發送的消息。該技術方案的有益效果在于,應用程序的所有IPC可以在一塊共享內存中進行,不需要如現有技術中每進行一次IPC就新申請一塊共享內存,能夠解決效率低下并且容易帶來內存管理的復雜度增加的問題;并且一個進程的多個線程都可以在這塊共享內存中實例化自己的IPC對象,使得通信互不干擾并且效率提升。
技術領域
本發明涉計算機技術領域,具體涉及進程間通信IPC的實現方法和裝置。
背景技術
IPC(Inter-Process Communication,進程間通信)在目前的應用程序中被廣泛使用,一個簡單的例子就是許多程序都有一個與主窗口對應的進程和一個與任務欄中托盤對應的進程,二者的交互是非常頻繁的。現有技術中的IPC實現方式,效率并不高,需要占用大量內存,需要進行改進。
發明內容
鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的進程間通信IPC的實現方法和裝置。
依據本發明的一個方面,提供了一種進程間通信IPC的實現方法,包括:
在用于進程間通信的共享內存中注冊與自身對應的IPC對象;
將消息發送給與通信目標對應的IPC對象,和/或通過與自身對應的IPC對象接收通信目標發送的消息。
可選地,所述在用于進程間通信的共享內存中注冊與自身對應的IPC對象包括:
獲取與自身對應的IPC對象的唯一標識;
根據所述唯一標識和自身預設的回調函數,注冊與自身對應的IPC對象。
可選地,所述獲取與自身對應的IPC對象的唯一標識包括:
根據自身所屬進程的類型,獲取隨機分配的唯一標識,或者獲取預留的唯一標識。
可選地,所述在用于進程間通信的共享內存中注冊與自身對應的IPC對象包括:
判斷是否已存在用于進程間通信的共享內存;
是則使用該用于進程間通信的共享內存,否則申請用于進程間通信的共享內存。
可選地,所述申請用于進程間通信的共享內存包括:
使用伙伴算法管理所述共享內存;
在所述共享內存中設置頭部區域,以存放所述伙伴算法的頭部信息和各IPC對象的共用信息。
可選地,所述在用于進程間通信的共享內存中注冊與自身對應的IPC對象包括:
判斷所述共享內存中是否存在與該IPC對象對應的預留空間,是則將所述IPC對象的注冊信息寫入所述預留空間,否則在所述共享內存中為該IPC對象新分配空間。
可選地,所述將消息發送給與通信目標對應的IPC對象包括:
判斷通信目標對應的IPC對象是否已在所述共享內存中注冊;
是則將所述消息寫入通信目標對應的IPC對象的消息隊列;否則判斷所述共享內存中是否存在與通信目標對應的IPC對象對應的預留空間,是則將所述消息寫入與該預留空間對應的消息隊列,否則在所述共享內存中為所述通信目標對應的IPC對象申請預留空間,將所述消息寫入與該預留空間對應的消息隊列。
可選地,該方法還包括:為發送的消息設置存活時間;
若發送的消息未在存活時間內被通信目標獲取,則從相應的消息隊列中刪除該發送的消息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810646525.0/2.html,轉載請聲明來源鉆瓜專利網。





