[發明專利]進程間通信方法、裝置及存儲介質有效
| 申請號: | 201911304874.5 | 申請日: | 2019-12-17 |
| 公開(公告)號: | CN111158927B | 公開(公告)日: | 2023-10-24 |
| 發明(設計)人: | 陳燮民;黃真明;吳群;周昆 | 申請(專利權)人: | 科大訊飛股份有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 深圳市威世博知識產權代理事務所(普通合伙) 44280 | 代理人: | 黎堅怡 |
| 地址: | 230088 安徽省*** | 國省代碼: | 安徽;34 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 進程 通信 方法 裝置 存儲 介質 | ||
1.一種進程間通信方法,其特征在于,包括:
利用讀對象打開共享內存流并獲取所述共享內存流的寫入指針,所述共享內存流用于流式存儲數據包,所述寫入指針用于指示第一數據包的位置并且在完成所述第一數據包的寫入后更新,所述第一數據包為最后一次向所述共享內存流寫入的數據包;
利用所述讀對象比較所述讀對象的當前讀指針與所述寫入指針,所述當前讀指針用于指示第二數據包的位置,所述第二數據包為利用所述讀對象最后一次從所述共享內存流中讀取的數據包;
若比較結果表示所述第一數據包在所述第二數據包之后,則利用所述讀對象從所述共享內存流中讀取所述第二數據包之后的數據包并更新所述當前讀指針。
2.根據權利要求1所述的方法,其特征在于,
所述寫入指針與所述第一數據包之間的相對位置關系與所述當前讀指針與所述第二數據包之間的相對位置關系相同,所述寫入指針在所述當前讀指針之后的所述比較結果表示所述第一數據包在所述第二數據包之后。
3.根據權利要求2所述的方法,其特征在于,
所述寫入指針指向所述第一數據包的結尾,所述當前讀指針指向所述第二數據包的結尾。
4.根據權利要求1所述的方法,其特征在于,進一步包括:
若所述比較結果表示所述第一數據包與所述第二數據包相同,則不利用所述讀對象從所述共享內存流中進行讀取。
5.根據權利要求1所述的方法,其特征在于,
所述利用所述讀對象從所述共享內存流中讀取所述第二數據包之后的數據包包括:
判斷所述第二數據包之后的下一數據包是否存在;
若存在,則利用所述讀對象讀取所述第二數據包之后的下一數據包,并在讀取完成之后更新所述當前讀指針;
若更新后的所述第二數據包與所述第一數據包不同,則繼續執行上述步驟,否則停止讀取。
6.根據權利要求5所述的方法,其特征在于,所述判斷所述第二數據包之后的下一數據包是否存在包括:
確定所述第一數據包的結尾與所述第二數據包的結尾之差是否大于或等于所述下一數據包的大小,其中所述下一數據包的大小是固定值或者是包括在所述下一數據包中。
7.根據權利要求1所述的方法,其特征在于,
所述利用讀對象打開共享內存流包括:
利用所述讀對象打開共享內存流信息表;
利用所述讀對象在所述共享內存流信息表中查找所述共享內存流的條目,所述共享內存流的條目包括所述共享內存流的寫對象信息和標識;
利用所述讀對象通過所述共享內存流的標識打開所述共享內存流。
8.根據權利要求7所述的方法,其特征在于,
所述共享內存流的條目進一步包括所述共享內存流的名稱、類型和所述寫入指針中的至少一種。
9.根據權利要求1-8中任一項所述的方法,其特征在于,進一步包括:
利用寫對象向所述共享內存流的結尾寫入更新數據包,所述更新數據包是利用所述寫對象的待寫入數據而得到的;
完成寫入后利用所述寫對象更新所述寫入指針。
10.根據權利要求9所述的方法,其特征在于,所述利用寫對象向所述共享內存流的結尾寫入更新數據包之前進一步包括:
利用所述寫對象確定所述共享內存流是否處于寫保護狀態,所述寫保護狀態表示所述共享內存流正在被其他寫對象寫入;
若所述共享內存流未處于所述寫保護狀態,則利用所述寫對象對所述共享內存流上寫入鎖,以使所述共享內存流進入所述寫保護狀態;
所述利用寫對象向所述共享內存流的結尾寫入更新數據包之后進一步包括:
利用所述寫對象對所述共享內存流解除所述寫入鎖,以使所述共享內存流離開所述寫保護狀態。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于科大訊飛股份有限公司,未經科大訊飛股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911304874.5/1.html,轉載請聲明來源鉆瓜專利網。





