[發明專利]一種消息的讀寫方法和裝置有效
| 申請號: | 200710304415.8 | 申請日: | 2007-12-27 |
| 公開(公告)號: | CN101470636A | 公開(公告)日: | 2009-07-01 |
| 發明(設計)人: | 朱律瑋;任宇;馬新群;鄒強 | 申請(專利權)人: | 北京東方通科技發展有限責任公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京路浩知識產權代理有限公司 | 代理人: | 劉長威 |
| 地址: | 100080北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 消息 讀寫 方法 裝置 | ||
1.一種消息的讀寫方法,其特征在于,包括以下步驟:
將消息從生產者發送到消息隊列的步驟;
根據所述消息的類型,查詢消息同步表,如果所述消息同步表中存在與所述消息的類型對應的記錄,則確認有對應的消費者的步驟;
當有對應的消費者時,喚醒所述對應的消費者中的一個消費者的步驟;
將所述消息發送給所述被喚醒的消費者的步驟;
在所述生產者查詢消息同步表之前,還包括如下步驟:
建立消息同步信號燈集;
建立消息同步表,所述消息同步表中表項的數量與所述消息同步信號燈集中的消息同步信號燈的數量相同;
對所述消息同步表進行初始化。
2.如權利要求1所述消息的讀寫方法,其特征在于,在所述喚醒對應的消費者中的一個消費者的步驟中,具體包括:
獲取與所述消息的類型對應的記錄的下標;
如果所述記錄的等待消費者的數量大于0,則獲取與所述下標對應的消息同步信號燈,對所述消息同步信號燈進行V操作,并將所述記錄中等待消費者的數量減1。
3.如權利要求1所述消息的讀寫方法,其特征在于,在所述查詢消息同步表之前,還包括消費者加入等待隊列的步驟,該消費者加入等待隊列的步驟具體包括:
根據需讀取消息的類型,查詢所述消息同步表,如果所述消息同步表中存在與所述需讀取消息的類型對應的記錄,則將所述記錄中等待消費者的數量加1;
獲取與所述需讀取消息的類型對應的記錄的下標;
獲取與所述下標對應的消息同步信號燈;
對所述消息同步信號燈進行P操作。
4.如權利要求1所述消息的讀寫方法,其特征在于,在所述查詢消息同步表之前,還包括消費者建立消息同步表記錄并加入等待隊列的步驟,該消費者建立消息同步表記錄并加入等待隊列的步驟具體包括:
根據需讀取消息的類型,查詢所述消息同步表,如果所述消息同步表中沒有與所述需讀取消息的類型對應的記錄,則在所述消息同步表中建立消息同步表記錄,并對所述記錄進行初始化;
獲取所述記錄的下標;
獲取與所述下標對應的消息同步信號燈;
對所述消息同步信號燈進行P操作。
5.如權利要求4所述消息的讀寫方法,其特征在于,所述對記錄進行初始化具體包括:
將所述記錄的消息類型設置為所述需讀取消息的類型;
將所述記錄的等待消費者的數量設置為1。
6.如權利要求1所述消息的讀寫方法,其特征在于,在所述被喚醒的消費者讀取消息之前,還包括如下步驟:
判斷所述等待消費者的數量是否為0,如果是,則清除所述記錄。
7.如權利要求1所述消息的讀寫方法,其特征在于,所述對消息同步表進行初始化具體包括:
將所述消息同步表的消息類型設置為-1;
將所述消息同步表的記錄的數量設置為0。
8.一種消息的讀寫裝置,其特征在于,包括:
發送裝置,用于將消息從生產者發送到消息隊列;
查詢裝置,用于根據所述消息的類型,查詢消息同步表,如果所述消息同步表中存在與所述消息的類型對應的記錄,則確認有對應的消費者;
喚醒裝置,當有對應的消費者時,喚醒所述對應的消費者中的一個消費者;
將所述消息發送給所述被喚醒的消費者的裝置;
所述消息的讀寫裝置還包括:
信號燈集建立單元,用于建立消息同步信號燈集;
消息同步表建立單元,用于建立消息同步表,所述消息同步表中表項的數量與所述消息同步信號燈集中的消息同步信號燈的數量相同;
消息同步表初始化單元,用于對所述消息同步表進行初始化。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京東方通科技發展有限責任公司,未經北京東方通科技發展有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710304415.8/1.html,轉載請聲明來源鉆瓜專利網。





