欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種進(jìn)程間通訊裝置及其進(jìn)程間通訊方法

文檔序號(hào):7661698閱讀:191來(lái)源:國(guó)知局
專利名稱:一種進(jìn)程間通訊裝置及其進(jìn)程間通訊方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種進(jìn)程間通訊裝置及其進(jìn)程間通訊方法。
背景技術(shù)
隨著智能網(wǎng)業(yè)務(wù)控制點(diǎn)SCP ( Service Control Point,業(yè)務(wù)控制點(diǎn))功能 越來(lái)越復(fù)雜,業(yè)務(wù)控制點(diǎn)需要根據(jù)功能的不同劃分為不同的模塊,如業(yè)務(wù)狀 態(tài)控制模塊、業(yè)務(wù)流程控制模塊、業(yè)務(wù)管理模塊、計(jì)費(fèi)模塊和話單處理模塊 等。為了便于管理和維護(hù),將這些模塊分解為獨(dú)立的進(jìn)程,各進(jìn)程內(nèi)部再進(jìn) 一步細(xì)分成不同的線程來(lái)完成模塊的相關(guān)功能,典型的多進(jìn)程多線程系統(tǒng)架 構(gòu)如圖1所示。
為了完成智能網(wǎng)業(yè)務(wù)呼叫流程,各模塊內(nèi)部和各模塊之間需要進(jìn)行大量 的消息交互,既有進(jìn)程內(nèi)的消息,也有進(jìn)程間的消息。進(jìn)程內(nèi)各線程之間的 消息發(fā)送相對(duì)比較簡(jiǎn)單,由于發(fā)送線程和接收線程在一個(gè)進(jìn)程的地址空間 中,發(fā)送線程只需要通過(guò)消息隊(duì)列將消息體的指針發(fā)送給接收線程,接收線 程就可以直接處理消息體指針。但對(duì)于進(jìn)程間的通訊,如果將整個(gè)消息體的 內(nèi)容(數(shù)據(jù))直接放入消息隊(duì)列來(lái)進(jìn)行發(fā)送,對(duì)操作系統(tǒng)的消息隊(duì)列會(huì)形成 很大的沖擊,大量的消息可能導(dǎo)致操作系統(tǒng)消息隊(duì)列阻塞,導(dǎo)致整個(gè)業(yè)務(wù)處 理機(jī)的異常。因此,對(duì)于進(jìn)程間的通訊,必需采用其它更加有效的方法來(lái)解 決。
除了智能網(wǎng)絡(luò)系統(tǒng)外,存在多個(gè)進(jìn)程、且多個(gè)進(jìn)程間有通訊需求的其它 系統(tǒng)也有類似的情況。解決以上問(wèn)題的傳統(tǒng)方法是采用如圖2所示的進(jìn)程間通訊模式,該進(jìn)程 間通訊模式結(jié)合使用消息隊(duì)列和共享內(nèi)存來(lái)進(jìn)行進(jìn)程間的通訊發(fā)送進(jìn)程將 需要發(fā)送的消息體的內(nèi)容(即數(shù)據(jù))拷貝到接收進(jìn)程對(duì)應(yīng)的共享內(nèi)存區(qū)域中, 同時(shí)將消息體的內(nèi)容在共享內(nèi)存中的偏移地址(數(shù)據(jù)起始地址)和數(shù)據(jù)長(zhǎng)度
通過(guò)消息隊(duì)列發(fā)送到接收進(jìn)程。圖2所示的進(jìn)程間通訊模式解決了由于消息數(shù)過(guò)多,消息體內(nèi)容所包含數(shù)據(jù)量過(guò)大而導(dǎo)致的消息隊(duì)列阻塞的問(wèn)題;但引發(fā)了一個(gè)新問(wèn)題,即當(dāng)多 個(gè)發(fā)送進(jìn)程/線程同時(shí)向 一個(gè)接收進(jìn)程發(fā)送消息時(shí),發(fā)送進(jìn)程/線程同時(shí)向接 收進(jìn)程的共享內(nèi)存區(qū)域?qū)懭胂Ⅲw的內(nèi)容,容易導(dǎo)致寫(xiě)沖突,即該共享內(nèi)存 區(qū)域中的同一個(gè)地址被多個(gè)發(fā)送進(jìn)程同時(shí)寫(xiě)入數(shù)據(jù),造成數(shù)據(jù)沖突;在多個(gè) 發(fā)送進(jìn)程存在大量并發(fā)消息的情況下,寫(xiě)沖突出現(xiàn)的概率很大。因此,在發(fā) 送進(jìn)程/線程將消息內(nèi)容拷貝到接收進(jìn)程的共享內(nèi)存區(qū)域前,必需先獲取進(jìn) 程間的互斥鎖,才能保證數(shù)據(jù)的完整性。但是在寫(xiě)操作前增加互斥操作無(wú)疑 降低了系統(tǒng)的并發(fā)度,導(dǎo)致系統(tǒng)整體性能的下降;并且互斥鎖過(guò)多也會(huì)消耗 大量的系統(tǒng)資源。發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問(wèn)題是,克服現(xiàn)有技術(shù)中進(jìn)程間通訊方法的不 足,提供一種不使用互斥操作即可實(shí)現(xiàn)正確的進(jìn)程間通訊裝置及其進(jìn)程間通 ifl方法。為了解決上述問(wèn)題,本發(fā)明提供一種進(jìn)程間通訊裝置,用于在發(fā)送進(jìn)程 的發(fā)送線程和接收進(jìn)程的接收線程之間進(jìn)行數(shù)據(jù)通訊,其特征在于,該裝置 包含共享存儲(chǔ)單元,共享消息隊(duì)列,分發(fā)存儲(chǔ)單元,分發(fā)單元;其中,共享存儲(chǔ)單元用于為所述發(fā)送線程提供存儲(chǔ)需發(fā)送到所述接收進(jìn)程的 接收線程的數(shù)據(jù)的存儲(chǔ)空間;分發(fā)存儲(chǔ)單元處于所述接收進(jìn)程的地址空間,用于存儲(chǔ)所述需發(fā)送到所 述接收進(jìn)程的接收線程的凄t據(jù);分發(fā)單元用于從共享消息隊(duì)列中讀取數(shù)據(jù)通知消息,根據(jù)該消息中包含 的數(shù)據(jù)地址信息將數(shù)據(jù)從共享存儲(chǔ)單元拷貝到分發(fā)存儲(chǔ)單元中;并將該數(shù)據(jù) 在分發(fā)存儲(chǔ)單元中的地址信息發(fā)送到數(shù)據(jù)通知消息中包含的接收線程標(biāo)識(shí) 對(duì)應(yīng)的所述接收線程中。
此外,所述分發(fā)單元為所述接收進(jìn)程的線程。此外,該裝置還包含分發(fā)消息隊(duì)列,用于將保存在所述分發(fā)存儲(chǔ)單元中 的所述數(shù)據(jù)的地址信息發(fā)送到所述接收線程標(biāo)識(shí)信息對(duì)應(yīng)的接收線程中。此外,所述共享存儲(chǔ)單元中包含為所述發(fā)送線程分配的存儲(chǔ)區(qū)域;所述 發(fā)送線程將所述需發(fā)送到所述接收線程的數(shù)據(jù)存儲(chǔ)在該存儲(chǔ)區(qū)域的可用地 址段中。此外,所述分發(fā)存儲(chǔ)單元是預(yù)先分配的所述接收進(jìn)程地址空間中的堆內(nèi) 存池;或者是所述分發(fā)單元根據(jù)需要?jiǎng)討B(tài)分配的堆內(nèi)存。本發(fā)明還提供一種進(jìn)程間通訊方法,其特征在于,當(dāng)發(fā)送進(jìn)程的發(fā)送線 程向接收進(jìn)程的接收線程發(fā)送數(shù)據(jù)時(shí),該方法包含如下步驟A:發(fā)送線程將所述數(shù)據(jù)存儲(chǔ)在共享存儲(chǔ)單元的可用地址段中,并將數(shù) 據(jù)通知消息通過(guò)共享消息隊(duì)列發(fā)送到分發(fā)單元;數(shù)據(jù)通知消息中包含所述數(shù) 據(jù)在共享存儲(chǔ)單元中的地址信息和接收線程標(biāo)識(shí);B:分發(fā)單元接收到上述數(shù)據(jù)通知消息后,獲取該消息中包含的數(shù)據(jù)的 起始信息和接收線程標(biāo)識(shí);C-.分發(fā)單元將所迷數(shù)據(jù)從共享存儲(chǔ)單元拷貝到分發(fā)存儲(chǔ)單元中,并將 該數(shù)據(jù)在分發(fā)存儲(chǔ)單元中的地址信息發(fā)送到接收線程標(biāo)識(shí)對(duì)應(yīng)的接收線程 中。此外,所述分發(fā)單元為所述接收進(jìn)程的線程。此外,在所述步驟C中,分發(fā)單元通過(guò)分發(fā)消息隊(duì)列將所述數(shù)據(jù)在分發(fā) 存儲(chǔ)單元中的地址信息發(fā)送到所述接收線程中。此外,所述共享存儲(chǔ)單元中包含為所述發(fā)送線程分配的存儲(chǔ)區(qū)域;在所
此外,在所述步驟B和C之間包含如下步驟Bk分發(fā)單元在所述接收進(jìn)程的地址空間分配堆內(nèi)存,將該堆內(nèi)存作為 所述分發(fā)存儲(chǔ)單元;在所述步驟C之后還包含如下步驟D:所述接收線程根據(jù)數(shù)據(jù)的地址信息從分發(fā)存儲(chǔ)單元讀取所述數(shù)據(jù), 并對(duì)數(shù)據(jù)進(jìn)行處理;E:所述接收線程釋放所述分發(fā)存儲(chǔ)單元對(duì)應(yīng)的堆內(nèi)存。由上可知,由于本發(fā)明為每一個(gè)發(fā)送線程在共享存儲(chǔ)單元中分配獨(dú)立的 存儲(chǔ)區(qū)域,有效地防止了多個(gè)發(fā)送進(jìn)程/線程向同一個(gè)地址空間寫(xiě)數(shù)據(jù)而導(dǎo) 致數(shù)據(jù)沖突的問(wèn)題,提高了系統(tǒng)處理的并發(fā)度;此外,由于在接收進(jìn)程中采 用了分發(fā)單元線程對(duì)發(fā)送進(jìn)程/線程發(fā)送的數(shù)據(jù)及時(shí)進(jìn)行拷貝、通知等處理, 有效地避免了發(fā)送線程與接收線程的數(shù)據(jù)發(fā)送與接收速度不匹配而導(dǎo)致的 數(shù)據(jù)不能被及時(shí)讀取、甚至造成數(shù)據(jù)被覆蓋的現(xiàn)象。


圖1為典型的多進(jìn)程多線程系統(tǒng)架構(gòu)示意圖; 圖2是現(xiàn)有技術(shù)中的進(jìn)程間通訊模式示意圖; 圖3為本發(fā)明的一種進(jìn)程間通訊裝置的結(jié)構(gòu)示意圖; 圖4是本發(fā)明的一種進(jìn)程間通訊方法流程圖。
具體實(shí)施方式
下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。圖3為本發(fā)明的一種進(jìn)程間通訊裝置的結(jié)構(gòu)示意圖。如圖3所示,進(jìn)程 間通訊裝置用于在發(fā)送進(jìn)程和接收進(jìn)程之間進(jìn)行數(shù)據(jù)通訊,發(fā)送進(jìn)程(進(jìn)程 A)包含一個(gè)或多個(gè)發(fā)送線程線程A1,....,線程An, n為進(jìn)程A中包含 的發(fā)送線程的數(shù)量;接收進(jìn)程(進(jìn)程B)包含一個(gè)或多個(gè)發(fā)送線程線程Bl,....,線程Bm, m為進(jìn)程B中包含的發(fā)送線程的數(shù)量。該裝置包含共享存儲(chǔ)單元,共享消息隊(duì)列,分發(fā)單元,分發(fā)存儲(chǔ)單元, 分發(fā)消息隊(duì)列。其中共享存儲(chǔ)單元用于為發(fā)送進(jìn)程中的各發(fā)送線程提供存儲(chǔ)空間,該存儲(chǔ)空 間用于存儲(chǔ)發(fā)送到其它進(jìn)程的數(shù)據(jù);在共享存儲(chǔ)單元中可以為發(fā)送進(jìn)程中的 不同發(fā)送線程分配不同的存儲(chǔ)區(qū)域;欲向其它進(jìn)程發(fā)送數(shù)據(jù)的線程可將數(shù)據(jù) 存ii在為該線程分配的區(qū)域中。共享消息隊(duì)列用于在發(fā)送進(jìn)程和接收進(jìn)程的分發(fā)單元之間傳送數(shù)據(jù)通 知消息;該消息通常包含共享存儲(chǔ)單元的偏移地址(數(shù)據(jù)的起始地址)及數(shù) 據(jù)長(zhǎng)度;此外該消息中還可包含消息(即數(shù)據(jù)的起始地址及長(zhǎng)度)轉(zhuǎn)發(fā)目的 標(biāo)識(shí)信息,用于指示該消息的接收者,即接收進(jìn)程中的接收線程的標(biāo)識(shí)信息。上述數(shù)據(jù)的起始地址及數(shù)據(jù)長(zhǎng)度可統(tǒng)稱為數(shù)據(jù)的地址信息,若發(fā)送方和 接收方對(duì)數(shù)據(jù)的長(zhǎng)度進(jìn)行了預(yù)先約定,則數(shù)據(jù)的地址信息中可不包含數(shù)據(jù)長(zhǎng)度。分發(fā)單元用于從共享消息隊(duì)列中讀取數(shù)據(jù)通知消息,通過(guò)其中包含的轉(zhuǎn) 發(fā)目的標(biāo)識(shí)信息獲知該消息的接收線程標(biāo)識(shí)信息,并從該消息中獲:f又共享存 儲(chǔ)單元的偏移地址及數(shù)據(jù)長(zhǎng)度;根據(jù)該偏移地址和數(shù)據(jù)長(zhǎng)度從共享存儲(chǔ)單元 中讀取數(shù)據(jù),并將該數(shù)據(jù)拷貝到分發(fā)存儲(chǔ)單元中;分發(fā)單元還將該數(shù)據(jù)在分 發(fā)存儲(chǔ)單元中的偏移地址(數(shù)據(jù)的起始地址)及數(shù)據(jù)長(zhǎng)度通過(guò)分發(fā)消息隊(duì)列 發(fā)送到上述接收線程標(biāo)識(shí)信息對(duì)應(yīng)的線程中。分發(fā)單元通常處于接收進(jìn)程的地址空間中,也就是說(shuō),分發(fā)單元為接收 進(jìn)程中的一個(gè)實(shí)現(xiàn)數(shù)據(jù)和消息分發(fā)功能的特定線程。分發(fā)存儲(chǔ)單元用于存儲(chǔ)數(shù)據(jù),該存儲(chǔ)單元通常位于接收進(jìn)程的地址空間 中;分發(fā)存儲(chǔ)單元通常是預(yù)先分配的接收進(jìn)程地址空間中的堆內(nèi)存,也可以 是分發(fā)單元根據(jù)需要?jiǎng)討B(tài)分配的堆內(nèi)存。分發(fā)消息隊(duì)列用于在分發(fā)單元和接收進(jìn)程中的各線程之間傳送消息,該 消息中通常包含上述分發(fā)存儲(chǔ)單元中的偏移地址(數(shù)據(jù)起始地址)及數(shù)據(jù)長(zhǎng) 度;由于在接收進(jìn)程中存在多個(gè)線程,而多個(gè)線程通常共享該分發(fā)消息隊(duì)列,
因此上述消息中通常還包含上述接收線程標(biāo)識(shí)信息,用于接收者確認(rèn)是否應(yīng) 該讀耳又該消息。在UNIX系統(tǒng)中,上述共享消息隊(duì)列和分發(fā)消息隊(duì)列通常是system V(系 統(tǒng)V)消息隊(duì)列。圖4是本發(fā)明的一種進(jìn)程間通訊方法流程圖。如圖4所示,當(dāng)發(fā)送進(jìn)程 中的發(fā)送線程(例如,線程Al)需要向接收進(jìn)程中的接收線程(例如,線 程B1)發(fā)送數(shù)據(jù)時(shí),該方法包含如下步驟101:線程A1將需發(fā)送至線程B1的數(shù)據(jù)存儲(chǔ)在共享存儲(chǔ)單元中為線程 Al所分配的存儲(chǔ)區(qū)域的當(dāng)前可用的地址段中;由于為Al所分配的存儲(chǔ)區(qū)域的大小有限,線程Al需要循環(huán)使用該存 儲(chǔ)區(qū)域,以避免在連續(xù)發(fā)送多段數(shù)據(jù)時(shí),前一段數(shù)據(jù)尚未被讀取即被下一段 數(shù)據(jù)覆蓋。該存儲(chǔ)區(qū)域的大小與線程Al寫(xiě)入數(shù)據(jù)段的頻率和數(shù)據(jù)量有關(guān), 即該存儲(chǔ)區(qū)域的大小需要保證循環(huán)使用該存儲(chǔ)區(qū)域時(shí)不會(huì)出現(xiàn)后續(xù)數(shù)據(jù)將 尚未被讀取的數(shù)據(jù)覆蓋的現(xiàn)象。102:線程Al將以上數(shù)據(jù)在共享存儲(chǔ)單元中的偏移地址及數(shù)據(jù)長(zhǎng)度通 過(guò)共享消息隊(duì)列發(fā)送到分發(fā)單元;由上可知,上述共享消息隊(duì)列通常為系統(tǒng)消息隊(duì)列,因此上述偏移地址 及數(shù)據(jù)長(zhǎng)度信息通常包含在數(shù)據(jù)通知消息中傳送給分發(fā)單元,該數(shù)據(jù)通知消 息中還需包含接收線程標(biāo)識(shí)信息,即,線程B1的標(biāo)識(shí)信息。103:分發(fā)單元接收到上述數(shù)據(jù)通知消息后,從該消息中獲取偏移地址 (數(shù)據(jù)起始地址)和數(shù)據(jù)長(zhǎng)度以及接收線程標(biāo)識(shí)信息;104:分發(fā)單元在接收進(jìn)程的地址空間中分配堆內(nèi)存作為分發(fā)存儲(chǔ)單元, 根據(jù)上述偏移地址和數(shù)據(jù)長(zhǎng)度信息從共享存儲(chǔ)單元讀取數(shù)據(jù),并將該數(shù)據(jù)拷 貝到分發(fā)存儲(chǔ)單元中;105:分發(fā)單元將分發(fā)存儲(chǔ)單元的地址,即數(shù)據(jù)的起始地址及數(shù)據(jù)長(zhǎng)度 通過(guò)分發(fā)消息隊(duì)列發(fā)送到上述接收線程標(biāo)識(shí)對(duì)應(yīng)的接收線程,即,線程Bl 中;
同樣,由于分發(fā)消息隊(duì)列通常為系統(tǒng)消息隊(duì)列,因此上述^t據(jù)起始地址及數(shù)據(jù)長(zhǎng)度信息通常包含在數(shù)據(jù)轉(zhuǎn)發(fā)消息中傳送給接收線程,即線程Bl, 該數(shù)據(jù)轉(zhuǎn)發(fā)消息中還需包含接收線程標(biāo)識(shí)信息,即,線程B1的標(biāo)識(shí)信息。106:線程B1接收到數(shù)據(jù)轉(zhuǎn)發(fā)消息后,根據(jù)該消息中包含的數(shù)據(jù)起始地 址和數(shù)據(jù)長(zhǎng)度從分發(fā)存儲(chǔ)單元中讀取數(shù)據(jù),對(duì)該數(shù)據(jù)進(jìn)行相應(yīng)的處理,并釋 放分發(fā)存儲(chǔ)單元對(duì)應(yīng)的堆內(nèi)存;由于線程B1與分發(fā)單元處于相同進(jìn)程的地址空間中,因此在數(shù)據(jù)使用 完畢后,線程Bl可使用上述數(shù)據(jù)起始地址直接釋;^文分發(fā)存儲(chǔ)單元對(duì)應(yīng)的堆 內(nèi)存。此外,線程B1也可以通知分發(fā)單元堆內(nèi)存中的數(shù)據(jù)已使用完畢,由分 發(fā)單元自行釋放該地址空間。例如,線程B1向分發(fā)單元發(fā)送內(nèi)存釋放消息, 通知分發(fā)單元釋放分發(fā)存儲(chǔ)單元對(duì)應(yīng)的堆內(nèi)存;此外,還可以通過(guò)全局變量 的通訊方式通知分發(fā)單元釋放內(nèi)存。由于接收線程通知分發(fā)單元釋放內(nèi)存的 方式屬于進(jìn)程內(nèi)的線程間通訊方式,不是本發(fā)明的重點(diǎn),因此對(duì)此不進(jìn)行過(guò) 多的描述。基于本發(fā)明的基本原理,上述實(shí)施例可以有多種變化方式,例如上述分發(fā)存儲(chǔ)單元可以是一段預(yù)先分配的堆內(nèi)存池,分發(fā)單元負(fù)責(zé)對(duì)其 進(jìn)行管理,并根據(jù)需要從堆內(nèi)存中選擇使用其中的一段或多段堆內(nèi)存;當(dāng)有 突發(fā)的大量數(shù)據(jù)需要拷貝,預(yù)先分配的堆內(nèi)存池中的可分配內(nèi)存無(wú)法滿足要 求時(shí)可以動(dòng)態(tài)分配堆內(nèi)存使用,這樣可以減少內(nèi)存分配/釋放的次數(shù)。由上可知,由于本發(fā)明為每一個(gè)發(fā)送線程在共享存儲(chǔ)單元中分配獨(dú)立的 存儲(chǔ)區(qū)域,有效地防止了多個(gè)發(fā)送進(jìn)程/線程向同 一個(gè)地址空間寫(xiě)數(shù)據(jù)而導(dǎo) 致數(shù)據(jù)沖突的問(wèn)題,提高了系統(tǒng)處理的并發(fā)度;此外,由于在接收進(jìn)程中采 用了分發(fā)單元線程對(duì)發(fā)送進(jìn)程/線程發(fā)送的數(shù)據(jù)及時(shí)進(jìn)行拷貝、通知等處理, 有效地避免了發(fā)送線程與接收線程的數(shù)據(jù)發(fā)送與接收速度不匹配而導(dǎo)致的 數(shù)據(jù)不能被及時(shí)讀取、甚至造成數(shù)據(jù)被覆蓋的現(xiàn)象。
權(quán)利要求
1、一種進(jìn)程間通訊裝置,用于在發(fā)送進(jìn)程的發(fā)送線程和接收進(jìn)程的接收線程之間進(jìn)行數(shù)據(jù)通訊,其特征在于,該裝置包含共享存儲(chǔ)單元,共享消息隊(duì)列,分發(fā)存儲(chǔ)單元,分發(fā)單元;其中,共享存儲(chǔ)單元用于為所述發(fā)送線程提供存儲(chǔ)需發(fā)送到所述接收進(jìn)程的接收線程的數(shù)據(jù)的存儲(chǔ)空間;共享消息隊(duì)列用于在所述發(fā)送線程和分發(fā)單元之間傳送數(shù)據(jù)通知消息;分發(fā)存儲(chǔ)單元處于所述接收進(jìn)程的地址空間,用于存儲(chǔ)所述需發(fā)送到所述接收進(jìn)程的接收線程的數(shù)據(jù);分發(fā)單元用于從共享消息隊(duì)列中讀取數(shù)據(jù)通知消息,根據(jù)該消息中包含的數(shù)據(jù)地址信息將數(shù)據(jù)從共享存儲(chǔ)單元拷貝到分發(fā)存儲(chǔ)單元中;并將該數(shù)據(jù)在分發(fā)存儲(chǔ)單元中的地址信息發(fā)送到數(shù)據(jù)通知消息中包含的接收線程標(biāo)識(shí)對(duì)應(yīng)的所述接收線程中。
2、 如權(quán)利要求1所述的進(jìn)程間通訊裝置,其特征在于,所述分發(fā)單元 為所述接收進(jìn)程的線程。
3、 如權(quán)利要求1所述的進(jìn)程間通訊裝置,其特征在于,該裝置還包含送到所述接收線程標(biāo)識(shí)信息對(duì)應(yīng)的接收線程中。
4、 如權(quán)利要求1所述的進(jìn)程間通訊裝置,其特征在于,所述共享存儲(chǔ) 單元中包含為所述發(fā)送線程分配的存儲(chǔ)區(qū)域;所述發(fā)送線程將所述需發(fā)送到 所述接收線程的數(shù)據(jù)存儲(chǔ)在該存儲(chǔ)區(qū)域的可用地址段中。
5、 如權(quán)利要求2所述的進(jìn)程間通訊裝置,其特征在于,所述分發(fā)存儲(chǔ) 單元是預(yù)先分配的所述接收進(jìn)程地址空間中的堆內(nèi)存池;或者是所述分發(fā)單 元根據(jù)需要?jiǎng)討B(tài)分配的堆內(nèi)存。
6、 一種進(jìn)程間通訊方法,其特征在于,當(dāng)發(fā)送進(jìn)程的發(fā)送線程向接收 進(jìn)程的接收線程發(fā)送數(shù)據(jù)時(shí),該方法包含如下步驟 A:發(fā)送線程將所述數(shù)據(jù)存儲(chǔ)在共享存儲(chǔ)單元的可用地址段中,并將數(shù) 據(jù)通知消息通過(guò)共享消息隊(duì)列發(fā)送到分發(fā)單元;數(shù)據(jù)通知消息中包含所述數(shù)據(jù)在共享存儲(chǔ)單元中的地址信息和接收線程標(biāo)識(shí);B:分發(fā)單元接收到上述數(shù)據(jù)通知消息后,獲取該消息中包含的數(shù)據(jù)的 起始信息和接收線程標(biāo)識(shí);C:分發(fā)單元將所述數(shù)據(jù)從共享存儲(chǔ)單元拷貝到分發(fā)存儲(chǔ)單元中,并將 該數(shù)據(jù)在分發(fā)存儲(chǔ)單元中的地址信息發(fā)送到接收線程標(biāo)識(shí)對(duì)應(yīng)的接收線程 中。
7、 如權(quán)利要求6所述的進(jìn)程間通訊方法,其特征在于,所述分發(fā)單元 為所述接收進(jìn)程的線程。
8、 如權(quán)利要求6所述的進(jìn)程間通訊方法,其特征在于,在所述步驟C 中,分發(fā)單元通過(guò)分發(fā)消息隊(duì)列將所述數(shù)據(jù)在分發(fā)存儲(chǔ)單元中的地址信息發(fā) 送到所述接收線程中。
9、 如權(quán)利要求6所述的進(jìn)程間通訊方法,其特征在于,所述共享存儲(chǔ) 單元中包含為所述發(fā)送線程分配的存儲(chǔ)區(qū)域;在所述步驟A中,所述發(fā)送 線程將所述數(shù)據(jù)存儲(chǔ)在該存儲(chǔ)區(qū)域中的可用地址段中。
10、 如權(quán)利要求7所述的進(jìn)程間通訊方法,其特征在于, 在所述步驟B和C之間包含如下步驟'.Bl:分發(fā)單元在所述接收進(jìn)程的地址空間分配堆內(nèi)存,將該堆內(nèi)存作為 所述分發(fā)存儲(chǔ)單元;在所述步驟C之后還包含如下步驟D:所述接收線程根據(jù)數(shù)據(jù)的地址信息從分發(fā)存儲(chǔ)單元讀取所述數(shù)據(jù), 并對(duì)數(shù)據(jù)進(jìn)4于處理;E:所述接收線程釋放所述分發(fā)存儲(chǔ)單元對(duì)應(yīng)的堆內(nèi)存。
全文摘要
一種進(jìn)程間通訊裝置和方法,用于在發(fā)送進(jìn)程的發(fā)送線程和接收進(jìn)程的接收線程之間進(jìn)行數(shù)據(jù)通訊。該裝置包含共享存儲(chǔ)單元,共享消息隊(duì)列,分發(fā)存儲(chǔ)單元,分發(fā)單元;其中,共享存儲(chǔ)單元用于為發(fā)送線程提供存儲(chǔ)需發(fā)送到接收進(jìn)程的接收線程的數(shù)據(jù)的存儲(chǔ)空間;共享消息隊(duì)列用于在發(fā)送線程和分發(fā)單元之間傳送數(shù)據(jù)通知消息;分發(fā)存儲(chǔ)單元處于接收進(jìn)程的地址空間,用于存儲(chǔ)需發(fā)送到接收進(jìn)程的接收線程的數(shù)據(jù);分發(fā)單元用于從共享消息隊(duì)列中讀取數(shù)據(jù)通知消息,根據(jù)該消息中包含的數(shù)據(jù)地址信息將數(shù)據(jù)從共享存儲(chǔ)單元拷貝到分發(fā)存儲(chǔ)單元中;并將該數(shù)據(jù)在分發(fā)存儲(chǔ)單元中的地址信息發(fā)送到數(shù)據(jù)通知消息中包含的接收線程標(biāo)識(shí)對(duì)應(yīng)的接收線程中。
文檔編號(hào)H04M3/42GK101127685SQ20071015304
公開(kāi)日2008年2月20日 申請(qǐng)日期2007年9月20日 優(yōu)先權(quán)日2007年9月20日
發(fā)明者盧勤元 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
泗水县| 芒康县| 广东省| 保德县| 阿瓦提县| 桐庐县| 泰安市| 得荣县| 锡林浩特市| 郑州市| 平谷区| 湖州市| 奎屯市| 屯留县| 鸡东县| 大兴区| 井研县| 永定县| 平泉县| 平昌县| 长春市| 永和县| 江孜县| 辉南县| 清河县| 棋牌| 平乡县| 河西区| 汉川市| 台山市| 讷河市| 图片| 曲阳县| 常州市| 乌兰察布市| 和田县| 历史| 玉田县| 西宁市| 保靖县| 喀什市|