[發(fā)明專利]一種進(jìn)程間數(shù)據(jù)傳遞的方法和系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201710265435.2 | 申請(qǐng)日: | 2017-04-21 |
| 公開(公告)號(hào): | CN107153579B | 公開(公告)日: | 2020-10-09 |
| 發(fā)明(設(shè)計(jì))人: | 張奇?zhèn)?/a> | 申請(qǐng)(專利權(quán))人: | 北京思特奇信息技術(shù)股份有限公司 |
| 主分類號(hào): | G06F9/52 | 分類號(hào): | G06F9/52;G06F9/54 |
| 代理公司: | 北京輕創(chuàng)知識(shí)產(chǎn)權(quán)代理有限公司 11212 | 代理人: | 楊立 |
| 地址: | 100089 北京市海淀*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 進(jìn)程 數(shù)據(jù) 傳遞 方法 系統(tǒng) | ||
本發(fā)明涉及一種進(jìn)程間數(shù)據(jù)傳遞的方法和系統(tǒng)。所述方法包括:S1,建數(shù)據(jù)庫表,在數(shù)據(jù)庫表中插入空控制記錄和滿控制記錄,并分別掛鎖;S2,插入和處理數(shù)據(jù)記錄前判斷數(shù)據(jù)記錄數(shù)量的狀態(tài);S3,當(dāng)數(shù)據(jù)記錄數(shù)量達(dá)到下限值則消費(fèi)者進(jìn)程暫停并執(zhí)行S4;當(dāng)數(shù)據(jù)記錄數(shù)量達(dá)到上限值則生產(chǎn)者進(jìn)程暫停并執(zhí)行S5;當(dāng)數(shù)據(jù)記錄數(shù)量在下限值和上限值間則生產(chǎn)者進(jìn)程插入,消費(fèi)者進(jìn)程處理;S4,生產(chǎn)者進(jìn)程對(duì)空控制記錄上的鎖解鎖以通知消費(fèi)者進(jìn)程并執(zhí)行S2;S5,消費(fèi)者進(jìn)程對(duì)滿控制記錄上的鎖進(jìn)行解鎖以通知生產(chǎn)者進(jìn)程并執(zhí)行S2。本發(fā)明實(shí)現(xiàn)了節(jié)省CPU資源,提升傳遞速度。
技術(shù)領(lǐng)域
本發(fā)明屬于數(shù)據(jù)處理領(lǐng)域,尤其涉及一種進(jìn)程間數(shù)據(jù)傳遞的方法和系統(tǒng)。
背景技術(shù)
現(xiàn)有的利用數(shù)據(jù)庫表實(shí)現(xiàn)進(jìn)程間數(shù)據(jù)傳遞的方法,均采用生產(chǎn)者進(jìn)程向數(shù)據(jù)庫表中插入數(shù)據(jù)記錄,消費(fèi)者進(jìn)程定時(shí)掃描數(shù)據(jù)庫表,把讀到的數(shù)據(jù)記錄逐條分析,分析成功后從數(shù)據(jù)庫表中刪除。在數(shù)據(jù)庫表內(nèi)沒有數(shù)據(jù)記錄時(shí),消費(fèi)者進(jìn)程采用以下兩種方式進(jìn)行處理:
方式一是:消費(fèi)者進(jìn)程不斷重復(fù)掃描數(shù)據(jù)庫表,生產(chǎn)者進(jìn)程一旦對(duì)沒有數(shù)據(jù)記錄的數(shù)據(jù)庫表成功插入數(shù)據(jù)記錄后,消費(fèi)者進(jìn)程能夠立刻發(fā)現(xiàn),并開始讀取數(shù)據(jù)記錄,進(jìn)行分析等,但消費(fèi)者進(jìn)程在發(fā)現(xiàn)數(shù)據(jù)庫表內(nèi)沒有數(shù)據(jù)記錄過程中,消費(fèi)者進(jìn)程是不斷掃描數(shù)據(jù)庫表,因而存在很高的CPU占用和消費(fèi)者進(jìn)程空轉(zhuǎn)的問題。
方式二:消費(fèi)者進(jìn)程在發(fā)現(xiàn)數(shù)據(jù)庫表內(nèi)沒有數(shù)據(jù)記錄時(shí),等待一段時(shí)間,例如等待5秒,5秒時(shí)間到后再次掃描數(shù)據(jù)庫表。這種方式能夠有效解決方式一中存在的高CPU占用和消費(fèi)者進(jìn)程空轉(zhuǎn)的問題,但是生產(chǎn)者進(jìn)程一旦向沒有數(shù)據(jù)記錄的數(shù)據(jù)庫表內(nèi)插入數(shù)據(jù)記錄時(shí),消費(fèi)者進(jìn)程是需要在等待時(shí)間結(jié)束后才能發(fā)現(xiàn)已插入的數(shù)據(jù)記錄并讀取的,造成消費(fèi)者進(jìn)程對(duì)數(shù)據(jù)庫表中的數(shù)據(jù)記錄感知靈敏性差。
同樣的,在數(shù)據(jù)庫表內(nèi)記錄滿時(shí),現(xiàn)有的利用數(shù)據(jù)庫表實(shí)現(xiàn)進(jìn)程間數(shù)據(jù)傳遞的方法也存在高CPU占用、生產(chǎn)者進(jìn)程空轉(zhuǎn)和生產(chǎn)者對(duì)數(shù)據(jù)庫表中的數(shù)據(jù)記錄感知靈敏度差的問題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種進(jìn)程間數(shù)據(jù)傳遞的方法和系統(tǒng)。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種進(jìn)程間數(shù)據(jù)傳遞的方法,包括如下步驟:
S1,建立用于傳遞生產(chǎn)者進(jìn)程和消費(fèi)者進(jìn)程間數(shù)據(jù)記錄的數(shù)據(jù)庫表,預(yù)先在所述數(shù)據(jù)庫表中插入空控制記錄和滿控制記錄,并分別在空控制記錄和滿控制記錄上掛鎖;
S2,生產(chǎn)者進(jìn)程插入數(shù)據(jù)記錄前和消費(fèi)者進(jìn)程處理數(shù)據(jù)記錄前判斷數(shù)據(jù)庫表中數(shù)據(jù)記錄數(shù)量的狀態(tài);
S3,當(dāng)消費(fèi)者進(jìn)程判定所述數(shù)據(jù)記錄數(shù)量達(dá)到下限值時(shí),則消費(fèi)者進(jìn)程暫停,并執(zhí)行S4;當(dāng)生產(chǎn)者進(jìn)程判定所述數(shù)據(jù)記錄數(shù)量達(dá)到上限值時(shí),則生產(chǎn)者進(jìn)程暫停,并執(zhí)行S5;當(dāng)判定所述數(shù)據(jù)記錄數(shù)量在下限值和上限值之間時(shí),則生產(chǎn)者進(jìn)程插入數(shù)據(jù)記錄,同時(shí)消費(fèi)者進(jìn)程處理數(shù)據(jù)記錄;
S4,生產(chǎn)者進(jìn)程對(duì)空控制記錄上掛的鎖進(jìn)行解鎖以通知消費(fèi)者進(jìn)程,消費(fèi)者進(jìn)程接收通知并執(zhí)行S2;
S5,消費(fèi)者進(jìn)程對(duì)滿控制記錄上掛的鎖進(jìn)行解鎖以通知生產(chǎn)者進(jìn)程,生產(chǎn)者進(jìn)程接收通知并執(zhí)行S2。
本發(fā)明的有益效果是:通過判定數(shù)據(jù)記錄數(shù)量是否達(dá)到上限值或下限值,從而暫停生產(chǎn)者進(jìn)程或是消費(fèi)者進(jìn)程。通過消費(fèi)者進(jìn)程對(duì)滿控制記錄上掛的鎖進(jìn)行解鎖,實(shí)現(xiàn)生產(chǎn)者進(jìn)程暫停被解除,由消費(fèi)者進(jìn)程主動(dòng)通知生產(chǎn)者進(jìn)程繼續(xù);生產(chǎn)者進(jìn)程對(duì)空控制記錄上掛的鎖進(jìn)行解鎖,實(shí)現(xiàn)消費(fèi)者進(jìn)程暫停被解除,由生產(chǎn)者進(jìn)程主動(dòng)通知消費(fèi)者進(jìn)程繼續(xù)。保留了利用數(shù)據(jù)庫表進(jìn)行數(shù)據(jù)傳遞的方式,降低數(shù)據(jù)傳遞時(shí)對(duì)CPU的占用,節(jié)省CPU資源,避免進(jìn)程空轉(zhuǎn),提高進(jìn)程對(duì)數(shù)據(jù)庫表內(nèi)的數(shù)據(jù)記錄感知靈敏度,避免進(jìn)程的無知等待,減少延遲,提升數(shù)據(jù)傳遞速度,提出了一個(gè)新的數(shù)據(jù)傳遞方法。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn):
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京思特奇信息技術(shù)股份有限公司,未經(jīng)北京思特奇信息技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710265435.2/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 一種進(jìn)程自動(dòng)恢復(fù)方法
- 進(jìn)程啟動(dòng)方法及內(nèi)核、進(jìn)程
- 一種進(jìn)程間的通信方法和裝置
- 進(jìn)程解析裝置、進(jìn)程解析方法和進(jìn)程解析程序
- 32位進(jìn)程和64位進(jìn)程交叉注入方法及裝置
- 一種應(yīng)用進(jìn)程控制方法及裝置
- 插件下載方法及裝置
- 進(jìn)程間的數(shù)據(jù)傳輸方法和裝置
- 進(jìn)程監(jiān)視裝置、進(jìn)程監(jiān)視方法和進(jìn)程監(jiān)視程序
- 一種基于動(dòng)態(tài)監(jiān)測(cè)的進(jìn)程優(yōu)化調(diào)度方法
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





