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

通信方法、裝置、系統(tǒng)、介質(zhì)以及產(chǎn)品與流程

文檔序號:40563980發(fā)布日期:2025-01-03 11:24閱讀:13來源:國知局
通信方法、裝置、系統(tǒng)、介質(zhì)以及產(chǎn)品與流程

本技術(shù)涉及車輛,尤其涉及通信方法、裝置、系統(tǒng)、介質(zhì)以及產(chǎn)品。


背景技術(shù):

1、在多線程或多任務(wù)環(huán)境中,線程或任務(wù)之間需要進(jìn)行數(shù)據(jù)交換和通信。傳統(tǒng)的鎖機(jī)制雖然能夠保證線程安全,但在高并發(fā)情況下可能會引入性能瓶頸,因?yàn)殒i會導(dǎo)致線程之間的競爭和阻塞。

2、如何通過無鎖消息隊(duì)列實(shí)現(xiàn)多線程的通信成為了亟需解決的問題。


技術(shù)實(shí)現(xiàn)思路

1、本技術(shù)的目的之一在于提供一種通信方法、裝置、系統(tǒng)、介質(zhì)以及產(chǎn)品,在多個(gè)寫入方進(jìn)行數(shù)據(jù)寫入時(shí),可以實(shí)現(xiàn)無鎖寫入,具有安全性高、實(shí)現(xiàn)簡單便捷、數(shù)據(jù)寫入效率高、準(zhǔn)確率高的特點(diǎn)。

2、為了實(shí)現(xiàn)上述目的,本技術(shù)采用的技術(shù)方案如下:

3、第一方面,本技術(shù)提供一種通信方法,該方法應(yīng)用于通信系統(tǒng)中的第一寫入方,通信系統(tǒng)包括的n個(gè)寫入方和一個(gè)讀取方,n為大于1的整數(shù);第一寫入方為n個(gè)寫入方中的任一寫入方;該方法包括:在通信系統(tǒng)的共享內(nèi)存包括的n個(gè)消息隊(duì)列控制體中確定第一寫入方的第一消息隊(duì)列控制體;一個(gè)寫入方對應(yīng)一個(gè)消息隊(duì)列控制體;將第一寫入方的第一數(shù)據(jù)寫入至第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的至少一個(gè)第一數(shù)據(jù)存儲塊中;隊(duì)列存儲區(qū)為無鎖隊(duì)列存儲區(qū);更新第一消息隊(duì)列控制體的隊(duì)列屬性;其中,更新后的第一消息隊(duì)列控制體的隊(duì)列屬性中,至少一個(gè)第一數(shù)據(jù)存儲塊中的每個(gè)第一數(shù)據(jù)存儲塊的狀態(tài)為使用狀態(tài)。

4、可以看出,在該實(shí)現(xiàn)方式中,通過無鎖隊(duì)列存儲區(qū)實(shí)現(xiàn)了寫入方的數(shù)據(jù)寫入。且整個(gè)實(shí)現(xiàn)過程通過消息隊(duì)列控制體來實(shí)現(xiàn),對于一個(gè)寫入方對應(yīng)一個(gè)消息隊(duì)列控制體,多個(gè)寫入方分別寫入各自對應(yīng)的消息隊(duì)列控制體即可,多個(gè)寫入方的寫入過程不影響,實(shí)現(xiàn)無鎖寫入。

5、這樣,首先,由于無鎖消息隊(duì)列不需要使用鎖來實(shí)現(xiàn)并發(fā)訪問控制,適用于push、pop非常頻繁的場景,效率要比mutex高很多;比如,股票行情,1秒鐘至少幾十萬數(shù)據(jù)量,具有并發(fā)性能高、數(shù)據(jù)寫入效率高的特點(diǎn);其次,由于無鎖消息隊(duì)列不需要等待鎖的釋放,因此能夠減少線程間通信的等待時(shí)間,從而降低了消息傳遞的延遲,具有低延遲的特點(diǎn);再次,無鎖消息隊(duì)列不會出現(xiàn)由于鎖競爭而導(dǎo)致的死鎖情況,因?yàn)樗鼪]有使用鎖;可以避免死鎖的問題;再,相比使用鎖來實(shí)現(xiàn)并發(fā)控制,無鎖消息隊(duì)列的實(shí)現(xiàn)相對簡單,減少了編程的復(fù)雜性,具有實(shí)現(xiàn)簡單便捷的特點(diǎn);再,多個(gè)寫入方的寫入過程互不影響,具有安全性高、準(zhǔn)確率高的特點(diǎn)。

6、在一種可能的實(shí)施方式中,一個(gè)隊(duì)列消息控制體包括:隊(duì)列存儲區(qū)、隊(duì)列屬性以及隊(duì)列控制信息;隊(duì)列存儲區(qū)包括多個(gè)數(shù)據(jù)存儲塊;隊(duì)列屬性包括以下一項(xiàng)或者多項(xiàng):多個(gè)數(shù)據(jù)存儲塊中每個(gè)數(shù)據(jù)存儲塊的狀態(tài)、每個(gè)數(shù)據(jù)存儲塊的地址、以及每個(gè)數(shù)據(jù)存儲塊中的數(shù)據(jù)長度;隊(duì)列控制信息包括以下一項(xiàng)或者多項(xiàng):隊(duì)列存儲區(qū)的位置指針、寫入數(shù)據(jù)個(gè)數(shù)、讀取數(shù)據(jù)個(gè)數(shù)、寫入方的標(biāo)識、最大支持?jǐn)?shù)據(jù)長度、隊(duì)列存儲區(qū)包括的數(shù)據(jù)存儲塊的數(shù)量、隊(duì)列存儲區(qū)的位置指針數(shù)組。

7、可以看出,隊(duì)列消息控制體用于管理一個(gè)寫入方的寫入,在該實(shí)施方式中,對隊(duì)列消息控制體的內(nèi)容進(jìn)行了詳細(xì)說明。首先、對存儲區(qū)、屬性區(qū)和管理區(qū)進(jìn)行了區(qū)分,實(shí)現(xiàn)邏輯清晰;其次,隊(duì)列控制信息中包括隊(duì)列存儲區(qū)的位置指針、寫入數(shù)據(jù)個(gè)數(shù)、讀取數(shù)據(jù)個(gè)數(shù)、寫入方的標(biāo)識、最大支持?jǐn)?shù)據(jù)長度、隊(duì)列存儲區(qū)包括的數(shù)據(jù)存儲塊的數(shù)量、隊(duì)列存儲區(qū)的位置指針數(shù)組中的一項(xiàng)或者多項(xiàng),具體可以根據(jù)實(shí)際情況配置,具有實(shí)現(xiàn)靈活的特點(diǎn);再次,隊(duì)列存儲區(qū)的位置指針、寫入數(shù)據(jù)個(gè)數(shù)、讀取數(shù)據(jù)個(gè)數(shù)、寫入方的標(biāo)識、最大支持?jǐn)?shù)據(jù)長度、隊(duì)列存儲區(qū)包括的數(shù)據(jù)存儲塊的數(shù)量、隊(duì)列存儲區(qū)的位置指針數(shù)組,詳細(xì)的對控制過程進(jìn)行了管理,提高了數(shù)據(jù)寫入的效率和準(zhǔn)確率。

8、在一種可能的實(shí)施方式中,在第一消息隊(duì)列控制體中隊(duì)列控制信息中包括寫入方的標(biāo)識的情況下,在通信系統(tǒng)的共享內(nèi)存包括的n個(gè)消息隊(duì)列控制體中確定第一寫入方的消息隊(duì)列控制體,包括:查找多個(gè)消息隊(duì)列控制體中每個(gè)消息隊(duì)列控制體的寫入方的標(biāo)識;在每個(gè)消息隊(duì)列控制體的寫入方的標(biāo)識中查找第一寫入方的標(biāo)識,將第一寫入方標(biāo)識所屬的消息隊(duì)列控制體,確定為第一消息隊(duì)列控制體。

9、可以看出,在該實(shí)施方式中,通過寫入方標(biāo)識的方式來確定消息隊(duì)列控制體,具有實(shí)現(xiàn)簡單、快速、不易出錯的特點(diǎn)。

10、在一種可能的實(shí)施方式中,將第一寫入方的第一數(shù)據(jù)寫入至第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的至少一個(gè)第一數(shù)據(jù)存儲塊中之前,該方法還包括:查看第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)中是否有處于空閑狀態(tài)的數(shù)據(jù)存儲塊;在第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)中沒有處于空閑狀態(tài)的數(shù)據(jù)存儲塊的情況下,進(jìn)行第一處理;直至第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)中有處于空閑狀態(tài)的數(shù)據(jù)存儲塊;在第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)中有處于空閑狀態(tài)的數(shù)據(jù)存儲塊的情況下,將空閑狀態(tài)的數(shù)據(jù)存儲塊確定為至少一個(gè)第一數(shù)據(jù)存儲塊。

11、可以看出,在該實(shí)施方式中,該寫入數(shù)據(jù)前,還需要判斷是否有處于空閑狀態(tài)的數(shù)據(jù)存儲塊,從而提高了數(shù)據(jù)寫入的成功率,也避免了阻塞。

12、在一種可能的實(shí)施方式中,在第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)中沒有處于空閑狀態(tài)的數(shù)據(jù)存儲塊的情況下,進(jìn)行第一處理,包括:在第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)中沒有處于空閑狀態(tài)的數(shù)據(jù)存儲塊的情況下,確定第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)處于發(fā)送竟態(tài);進(jìn)入內(nèi)核態(tài),在內(nèi)核態(tài)下,向讀取方發(fā)送第一讀取指令,以使讀取方對第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的數(shù)據(jù)進(jìn)行讀??;并返回用戶態(tài)進(jìn)行處理。

13、可以看出,在該實(shí)施方式中,對第一處理進(jìn)行了說明,將這些處理放在了內(nèi)核態(tài)進(jìn)行處理,提高了安全性。

14、在一種可能的實(shí)施方式中,進(jìn)入內(nèi)核態(tài),在內(nèi)核態(tài)下,向讀取方發(fā)送第一讀取指令,以使讀取方對第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的數(shù)據(jù)進(jìn)行讀取,并返回用戶態(tài)進(jìn)行處理,包括:在內(nèi)核態(tài)下,向讀取方發(fā)送第一讀取指令,以使讀取方對第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的數(shù)據(jù)進(jìn)行讀?。蝗艋诘谝蛔x取指令的指示得到處于空閑狀態(tài)的數(shù)據(jù)存儲塊,則返回用戶態(tài)進(jìn)行第一數(shù)據(jù)的寫入;若基于第一讀取指令的指示沒有得到處于空閑狀態(tài)的數(shù)據(jù)存儲塊,則返回用戶態(tài)進(jìn)行等待;

15、或者,在內(nèi)核態(tài)下,在第一時(shí)間內(nèi)向讀取方發(fā)送第一讀取指令,以使讀取方對第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的數(shù)據(jù)進(jìn)行讀?。蝗粼诘谝粫r(shí)間內(nèi)基于第一讀取指令的指示得到處于空閑狀態(tài)的數(shù)據(jù)存儲塊,則返回用戶態(tài)進(jìn)行第一數(shù)據(jù)的寫入;或者,在第一時(shí)間達(dá)到后,基于第一讀取指令的指示沒有得到處于空閑狀態(tài)的數(shù)據(jù)存儲塊,則返回用戶態(tài)進(jìn)行等待。

16、可以看出,對于內(nèi)核態(tài)和用戶態(tài)之間的處理,該實(shí)施方式說明了有時(shí)間限制和沒有實(shí)現(xiàn)限制的兩種處理方式。具有是實(shí)現(xiàn)靈活的特點(diǎn),且有時(shí)間限制的實(shí)現(xiàn)方式可以避免長時(shí)間等待的情況。

17、在一種可能的實(shí)施方式中,將第一寫入方的第一數(shù)據(jù)寫入至第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的至少一個(gè)第一數(shù)據(jù)存儲塊中,包括:獲取第一消息隊(duì)列控制體的控制信息;確定控制信息中最大支持?jǐn)?shù)據(jù)長度是否滿足第一數(shù)據(jù)的需求;在最大支持?jǐn)?shù)據(jù)長度不滿足第一數(shù)據(jù)的需求的情況下,執(zhí)行將第一寫入方的第一數(shù)據(jù)寫入至第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的至少一個(gè)第一數(shù)據(jù)存儲塊中;在最大支持?jǐn)?shù)據(jù)長度不滿足第一數(shù)據(jù)的需求的情況下,獲取重新申請的新第一消息隊(duì)列控制體,并將第一數(shù)據(jù)寫入至新第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的至少一個(gè)第一數(shù)據(jù)存儲塊中;其中,新第一消息隊(duì)列控制體中的控制信息中的最大支持?jǐn)?shù)據(jù)長度滿足第一數(shù)據(jù)的需求。

18、可以看出,在該實(shí)施方式中,在寫入第一數(shù)據(jù)時(shí),還需要考慮消息隊(duì)里控制體中記錄的最大支持?jǐn)?shù)據(jù)長度是否滿足第一數(shù)據(jù)的需求,即最大支持?jǐn)?shù)據(jù)長度是否大于第一數(shù)據(jù)的數(shù)據(jù)長度,滿足時(shí)才可寫入,不滿足則重新申請一個(gè)新第一消息隊(duì)列控制體進(jìn)行寫入,提高了數(shù)據(jù)寫入的成功率和準(zhǔn)確率。

19、在一種可能的實(shí)施方式中,該方法還包括:在完成更新第一消息隊(duì)列控制體的隊(duì)列屬性的情況下,向讀取方發(fā)送第二讀取指令,第二指令讀取用于指示讀取方進(jìn)行第一數(shù)據(jù)的讀??;或者,在第一消息隊(duì)列控制體中的隊(duì)列存儲區(qū)發(fā)生發(fā)送竟態(tài)的情況下,向讀取方發(fā)送第一讀取指令,第一讀取指令用于指示讀取方對隊(duì)列存儲區(qū)的數(shù)據(jù)進(jìn)行讀取。

20、可以看出,在該實(shí)施方式中,完成第一數(shù)據(jù)的寫入,即使通知讀取方可以進(jìn)行數(shù)據(jù)的讀取,從而提高效率;且在發(fā)送竟態(tài)時(shí),即使通知讀取方進(jìn)行數(shù)據(jù)讀取,釋放空間;通過讀取指令及時(shí)提醒讀取方進(jìn)行數(shù)據(jù)讀取,可以提高效率,防止阻塞。

21、在一種可能的實(shí)施方式中,消息隊(duì)列控制體中的隊(duì)列存儲區(qū)為環(huán)形隊(duì)列存儲區(qū)。

22、可以看出,在該實(shí)施方式中,環(huán)形隊(duì)列存儲區(qū)可以實(shí)現(xiàn)數(shù)據(jù)的循環(huán)寫入與讀取,具有高效、簡單的特點(diǎn)。

23、第二方面,本技術(shù)提供一種通信方法,該方法應(yīng)用于通信系統(tǒng)中的讀取方,通信系統(tǒng)包括的n個(gè)寫入方和一個(gè)讀取方,n為大于1的整數(shù);該方法包括:獲取通信系統(tǒng)的共享內(nèi)存包括的n個(gè)消息隊(duì)列控制體;一個(gè)寫入方對應(yīng)一個(gè)消息隊(duì)列控制體;在n個(gè)消息隊(duì)列控制體中,確定待讀取的第二數(shù)據(jù)所在的第二消息隊(duì)列控制體;在第二消息隊(duì)列控制體的隊(duì)列存儲區(qū)域中的至少一個(gè)第二數(shù)據(jù)存儲塊中讀取第二數(shù)據(jù);隊(duì)列存儲區(qū)為無鎖隊(duì)列存儲區(qū);更新第二消息隊(duì)列控制體的隊(duì)列屬性,其中,更新后的第二消息隊(duì)列控制體的隊(duì)列屬性中,至少一個(gè)第二數(shù)據(jù)存儲塊中的每個(gè)第二數(shù)據(jù)存儲塊的狀態(tài)為空閑狀態(tài)。

24、可以看出,在該實(shí)施例中,通過無鎖隊(duì)列存儲區(qū)實(shí)現(xiàn)了讀取方的數(shù)據(jù)讀取。且整個(gè)實(shí)現(xiàn)過程通過消息隊(duì)列控制體來實(shí)現(xiàn)。

25、這樣,首先,由于無鎖消息隊(duì)列不需要使用鎖來實(shí)現(xiàn)并發(fā)訪問控制,適用于push、pop非常頻繁的場景,效率要比mutex高很多;比如,股票行情,1秒鐘至少幾十萬數(shù)據(jù)量,具有并發(fā)性能高、數(shù)據(jù)讀取效率高的特點(diǎn);其次,由于無鎖消息隊(duì)列不需要等待鎖的釋放,因此能夠減少線程間通信的等待時(shí)間,從而降低了消息傳遞的延遲,具有低延遲的特點(diǎn);再次,無鎖消息隊(duì)列不會出現(xiàn)由于鎖競爭而導(dǎo)致的死鎖情況,因?yàn)樗鼪]有使用鎖;可以避免死鎖的問題;再,相比使用鎖來實(shí)現(xiàn)并發(fā)控制,無鎖消息隊(duì)列的實(shí)現(xiàn)相對簡單,減少了編程的復(fù)雜性,具有實(shí)現(xiàn)簡單便捷的特點(diǎn)。

26、在一種可能的實(shí)施方式中,在n個(gè)消息隊(duì)列控制體中,確定待讀取的第二數(shù)據(jù)所在的第二消息隊(duì)列控制體,包括:確定第二數(shù)據(jù)所屬的寫入方;在多個(gè)消息隊(duì)列控制體中,基于第二數(shù)據(jù)所屬的寫入方的標(biāo)識確定第二消息隊(duì)列控制體。

27、可以看出,在該實(shí)施方式中,過寫入方標(biāo)識的方式來確定消息隊(duì)列控制體,具有實(shí)現(xiàn)簡單、快速、不易出錯的特點(diǎn)。

28、在一種可能的實(shí)施方式中,在第二消息隊(duì)列控制體的隊(duì)列存儲區(qū)域中的至少一個(gè)第二數(shù)據(jù)存儲塊中讀取第二數(shù)據(jù),包括:查看第二消息隊(duì)列控制體的隊(duì)列存儲區(qū)域是否有處于使用狀態(tài)的數(shù)據(jù)存儲塊;在第二消息隊(duì)列控制體的隊(duì)列存儲區(qū)域沒有處于使用狀態(tài)的數(shù)據(jù)存儲塊的情況下,進(jìn)行第二處理,直至第二消息隊(duì)列控制體的隊(duì)列存儲區(qū)域有處于使用狀態(tài)的數(shù)據(jù)存儲塊;在第二消息隊(duì)列控制體的隊(duì)列存儲區(qū)域有處于使用狀態(tài)的數(shù)據(jù)存儲塊的情況下,確定處于使用狀態(tài)的數(shù)據(jù)存儲塊為第二數(shù)據(jù)存儲塊。

29、可以看出,在該實(shí)施方式中,該讀取數(shù)據(jù)前,還需要判斷是否有處于使用狀態(tài)的數(shù)據(jù)存儲塊,即需要先判斷數(shù)據(jù)是否寫入,在寫入后再讀取,從而提高了數(shù)據(jù)讀取的成功率,也避免了等待所引起的阻塞問題。

30、在一種可能的實(shí)施方式中,在執(zhí)行該在第二消息隊(duì)列控制體的隊(duì)列存儲區(qū)域中的至少一個(gè)第二數(shù)據(jù)存儲塊中讀取第二數(shù)據(jù)之前,該方法還包括:在第二消息隊(duì)列控制體的隊(duì)列存儲區(qū)中沒有處于使用狀態(tài)的數(shù)據(jù)存儲塊的情況下,確定隊(duì)列存儲區(qū)處于接收竟態(tài);進(jìn)入內(nèi)核態(tài),在內(nèi)核態(tài)下,向第二消息隊(duì)列控制體對應(yīng)的寫入方發(fā)送第一寫入指令,以進(jìn)行第二數(shù)據(jù)的寫入,并返回用戶態(tài)進(jìn)行處理。

31、可以看出,在該實(shí)施方式中,對第二處理進(jìn)行了說明,將這些處理放在了內(nèi)核態(tài)進(jìn)行處理,提高了安全性。

32、在一種可能的實(shí)施方式中,在內(nèi)核態(tài)下,向第二消息隊(duì)列控制體對應(yīng)的寫入方發(fā)送第一寫入指令,以進(jìn)行第一數(shù)據(jù)的寫入,并返回用戶態(tài)進(jìn)行處理,包括:在內(nèi)核態(tài)下,向第二消息隊(duì)列控制體對應(yīng)的寫入方發(fā)送第一寫入指令,以進(jìn)行第一數(shù)據(jù)的寫入;若基于第一寫入指令的指示,得到處于使用狀態(tài)的數(shù)據(jù)存儲塊;則返回用戶態(tài)進(jìn)行第二數(shù)據(jù)的讀??;若基于第一指令的指示沒有得到處于使用狀態(tài)的數(shù)據(jù)存儲塊的情況下,則返回用戶態(tài)進(jìn)行等待;

33、或者,在內(nèi)核態(tài)下,在第二時(shí)間內(nèi)向第二消息隊(duì)列控制體對應(yīng)的寫入方發(fā)送第一寫入指令,以進(jìn)行第一數(shù)據(jù)的寫入;若在第二時(shí)間內(nèi)基于第一寫入指令的指示,得到處于使用狀態(tài)的數(shù)據(jù)存儲塊;則返回用戶態(tài)進(jìn)行第二數(shù)據(jù)的讀??;或者,在第二時(shí)間達(dá)到后,基于第一指令的指示沒有得到處于使用狀態(tài)的數(shù)據(jù)存儲塊的情況下,則返回用戶態(tài)進(jìn)行等待。

34、可以看出,在該實(shí)施方式中,對于內(nèi)核態(tài)和用戶態(tài)之間的處理,該實(shí)施方式說明了有時(shí)間限制和沒有實(shí)現(xiàn)限制的兩種處理方式。具有是實(shí)現(xiàn)靈活的特點(diǎn),且有時(shí)間限制的實(shí)現(xiàn)方式可以避免長時(shí)間等待的情況。

35、在一種可能的實(shí)施方式中,該方法還包括:在完成更新第二消息隊(duì)列控制體的隊(duì)列屬性的情況下,向第二消息隊(duì)列控制體對應(yīng)的讀取方發(fā)送第二寫入指令,第二寫入指令用于指示第二消息隊(duì)列控制體對應(yīng)的讀取方進(jìn)行新數(shù)據(jù)的寫入;或者,在第二消息隊(duì)列控制體中的隊(duì)列存儲區(qū)發(fā)生接收竟態(tài)的情況下,向第二消息隊(duì)列控制體對應(yīng)的讀取方發(fā)送第一寫入指令,第二指令用于指示第二消息隊(duì)列控制體對應(yīng)的讀取方進(jìn)行第二數(shù)據(jù)的寫入。

36、可以看出,在該實(shí)施方式中,完成第二數(shù)據(jù)的讀取,即使通知寫入方可以進(jìn)行新數(shù)據(jù)的寫入,從而提高效率;且在接收竟態(tài)時(shí),即使通知寫入方進(jìn)行數(shù)據(jù)寫入,通過寫入指令及時(shí)提醒寫入方進(jìn)行數(shù)據(jù)寫入,可以提高效率,防止阻塞。

37、在一種可能的實(shí)施方式中,在獲取通信系統(tǒng)的共享內(nèi)存包括的n個(gè)消息隊(duì)列控制體之前,該方法還包括:確定通信系統(tǒng)的共享內(nèi)存;在共享內(nèi)存中申請n個(gè)消息隊(duì)列控制體;一個(gè)寫入方對應(yīng)一個(gè)消息隊(duì)列控制體;基于n個(gè)寫入方的需求,對n個(gè)消息隊(duì)列控制體進(jìn)行初始化處理。

38、可以看出,在該實(shí)施方式中,需要申請共享內(nèi)存,且在共享內(nèi)存中根據(jù)寫入方的數(shù)量申請對應(yīng)數(shù)量的消息隊(duì)列控制體,并做初始化處理;為后續(xù)的無鎖通信提供準(zhǔn)確,具有實(shí)現(xiàn)簡單的特點(diǎn)。

39、第三方面,本技術(shù)提供一種第一通信裝置。第一通信裝置部署于通信系統(tǒng)中的第一寫入方,通信系統(tǒng)包括的n個(gè)寫入方和一個(gè)讀取方,n為大于1的整數(shù);第一寫入方為n個(gè)寫入方中的任一寫入方;第一通信裝置包括:

40、第一確定單元,用于在通信系統(tǒng)的共享內(nèi)存包括的n個(gè)消息隊(duì)列控制體中確定第一寫入方的第一消息隊(duì)列控制體;一個(gè)寫入方對應(yīng)一個(gè)消息隊(duì)列控制體;

41、寫入單元,用于將第一寫入方的第一數(shù)據(jù)寫入至第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的至少一個(gè)第一數(shù)據(jù)存儲塊中;隊(duì)列存儲區(qū)為無鎖隊(duì)列存儲區(qū);

42、第一更新單元,用于更新第一消息隊(duì)列控制體的隊(duì)列屬性;其中,更新后的第一消息隊(duì)列控制體的隊(duì)列屬性中,至少一個(gè)第一數(shù)據(jù)存儲塊中的每個(gè)第一數(shù)據(jù)存儲塊的狀態(tài)為使用狀態(tài)。

43、第四方面,本技術(shù)還提供了一種第二通信裝置,第二通信裝置部署于通信系統(tǒng)中的讀取方,通信系統(tǒng)包括的n個(gè)寫入方和一個(gè)讀取方,n為大于1的整數(shù);第二通信裝置包括:

44、獲取單元,用于獲取通信系統(tǒng)的共享內(nèi)存包括的n個(gè)消息隊(duì)列控制體;一個(gè)寫入方對應(yīng)一個(gè)消息隊(duì)列控制體;

45、第二確定單元,用于在n個(gè)消息隊(duì)列控制體中,確定待讀取的第二數(shù)據(jù)所在的第二消息隊(duì)列控制體;

46、讀取單元,用于在第二消息隊(duì)列控制體的隊(duì)列存儲區(qū)域中的至少一個(gè)第二數(shù)據(jù)存儲塊中讀取第二數(shù)據(jù);隊(duì)列存儲區(qū)為無鎖隊(duì)列存儲區(qū);

47、第二更新單元,用于更新第二消息隊(duì)列控制體的隊(duì)列屬性,其中,更新后的第二消息隊(duì)列控制體的隊(duì)列屬性中,至少一個(gè)第二數(shù)據(jù)存儲塊中的每個(gè)第二數(shù)據(jù)存儲塊的狀態(tài)為空閑狀態(tài)。

48、第五方面,本技術(shù)還提供了一種通信系統(tǒng),通信系統(tǒng)包括的n個(gè)寫入方和一個(gè)讀取方,n為大于1的整數(shù);

49、n個(gè)寫入方中的任一寫入方用于:

50、在通信系統(tǒng)的共享內(nèi)存包括的n個(gè)消息隊(duì)列控制體中確定第一寫入方的第一消息隊(duì)列控制體;一個(gè)寫入方對應(yīng)一個(gè)消息隊(duì)列控制體;將第一寫入方的第一數(shù)據(jù)寫入至第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的至少一個(gè)第一數(shù)據(jù)存儲塊中;隊(duì)列存儲區(qū)為無鎖隊(duì)列存儲區(qū);更新第一消息隊(duì)列控制體的隊(duì)列屬性;其中,更新后的第一消息隊(duì)列控制體的隊(duì)列屬性中,至少一個(gè)第一數(shù)據(jù)存儲塊中的每個(gè)第一數(shù)據(jù)存儲塊的狀態(tài)為使用狀態(tài);第一寫入方為n個(gè)寫入方中的任一寫入方;

51、讀取方用于:

52、獲取通信系統(tǒng)的共享內(nèi)存包括的n個(gè)消息隊(duì)列控制體;在n個(gè)消息隊(duì)列控制體中,確定待讀取的第二數(shù)據(jù)所在的第二消息隊(duì)列控制體;在第二消息隊(duì)列控制體的隊(duì)列存儲區(qū)域中的至少一個(gè)第二數(shù)據(jù)存儲塊中讀取第二數(shù)據(jù);更新第二消息隊(duì)列控制體的隊(duì)列屬性,其中,更新后的第二消息隊(duì)列控制體的隊(duì)列屬性中,至少一個(gè)第二數(shù)據(jù)存儲塊中的每個(gè)第二數(shù)據(jù)存儲塊的狀態(tài)為空閑狀態(tài)。

53、在一些實(shí)施例中,n個(gè)寫入方中的多個(gè)寫入方用于并行執(zhí)行:

54、在通信系統(tǒng)的共享內(nèi)存包括的n個(gè)消息隊(duì)列控制體中確定第一寫入方的第一消息隊(duì)列控制體;一個(gè)寫入方對應(yīng)一個(gè)消息隊(duì)列控制體;將第一寫入方的第一數(shù)據(jù)寫入至第一消息隊(duì)列控制體的隊(duì)列存儲區(qū)的至少一個(gè)第一數(shù)據(jù)存儲塊中;隊(duì)列存儲區(qū)為無鎖隊(duì)列存儲區(qū);更新第一消息隊(duì)列控制體的隊(duì)列屬性;其中,更新后的第一消息隊(duì)列控制體的隊(duì)列屬性中,至少一個(gè)第一數(shù)據(jù)存儲塊中的每個(gè)第一數(shù)據(jù)存儲塊的狀態(tài)為使用狀態(tài);第一寫入方為多個(gè)寫入方中的任一寫入方。

55、第六方面,本技術(shù)還提供了一種存儲介質(zhì),該存儲介質(zhì)上存儲有計(jì)算機(jī)程序或者指令,該計(jì)算機(jī)程序或者指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述第一方面或者第二方面提供的通信方法。

56、第七方面,本技術(shù)還提供了一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序或者指令,該計(jì)算機(jī)程序或者指令被處理器執(zhí)行時(shí),實(shí)現(xiàn)上述第一方面或者第二方面提供的通信方法。

57、需要說明的是,第三方面至第七方面的技術(shù)效果可以參考上述第一方面和第二方面的詳細(xì)描述,此處不再一一贅述。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
两当县| 天长市| 垣曲县| 柳河县| 南京市| 鱼台县| 团风县| 宜阳县| 达尔| 龙胜| 二手房| 且末县| 桃源县| 丹棱县| 通渭县| 江山市| 依安县| 泽普县| 桂阳县| 平遥县| 康保县| 旺苍县| 竹山县| 普陀区| 虞城县| 抚顺县| 长子县| 类乌齐县| 孙吴县| 外汇| 凤山县| 景谷| 桂平市| 通城县| 昌黎县| 临海市| 合山市| 郓城县| 姜堰市| 手机| 唐河县|