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

軟總線程序并發(fā)資源分配方法

文檔序號:9432375閱讀:147來源:國知局
軟總線程序并發(fā)資源分配方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于一種數(shù)據(jù)處理方法,具體涉及一種軟總線程序并發(fā)資源分配方法。
【背景技術(shù)】
[0002]軟總線程序主要應(yīng)用在網(wǎng)絡(luò)通信系統(tǒng)中,實現(xiàn)模塊間的數(shù)據(jù)通信功能,是模塊間實現(xiàn)跨進(jìn)程通信的通道。數(shù)據(jù)傳輸?shù)男适呛饬吭撏ǖ赖囊粋€重要指標(biāo),對軟總線而言,它是一個服務(wù)模塊,同一時刻進(jìn)行通信的客戶端模塊有若干個,保證每個模塊都能夠及時準(zhǔn)確的收到信息是軟總線首要考慮的問題。
[0003]針對這個問題,目前有兩種解決方案,一是依賴于硬件擴(kuò)展,譬如增加計算機(jī)內(nèi)存,提升計算機(jī)主頻等,借以提高硬件處理能力;二是用軟件方法實現(xiàn)多線程、多進(jìn)程工作,提高數(shù)據(jù)傳輸?shù)牟l(fā)性效率。
[0004]上述兩種方式雖然能在一定程度上解決數(shù)據(jù)轉(zhuǎn)發(fā)速度問題,但是過于依賴外部條件(譬如硬件配置)就會降低軟件產(chǎn)品的推廣應(yīng)用,使軟件產(chǎn)品成為特殊應(yīng)用;同樣,如果一味的增加線程或進(jìn)程數(shù)量來解決這個問題,除了硬件依賴性太強(qiáng)之外,系統(tǒng)處理能力反而下降,從而影響了數(shù)據(jù)傳輸效率的提升。

【發(fā)明內(nèi)容】

[0005]為解決上述技術(shù)中的不足,本發(fā)明的目的在于:提供一種軟總線程序并發(fā)資源分配方法,既能提高數(shù)據(jù)轉(zhuǎn)發(fā)效率,又能消除對硬件條件和線程數(shù)量的過度依賴。
[0006]為解決其技術(shù)問題,本發(fā)明所采取的技術(shù)方案為:
[0007]所述軟總線程序并發(fā)資源分配方法,包括以下步驟:
[0008]第一步,建立應(yīng)用級線程池,預(yù)先啟動若干個工作者線程Wn (η = 1,2,…,N,N取大于2的整數(shù))和一個管理者線程M ;
[0009]第二步,為每一個工作者線程^定義一個發(fā)送緩沖區(qū),由管理者線程M進(jìn)行該發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的調(diào)配與寫入,由工作者線程^進(jìn)行該發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的讀取和轉(zhuǎn)發(fā)。
[0010]其中,優(yōu)選方案為:
[0011]所述發(fā)送緩沖區(qū)具體定義方式如下:
[0012]定義CBuf類,這個類中包含一個CRec類型的成員變量m_CRec
[5000]、一個int類型的讀指針m_nRead和一個int類型的寫指針m_nWrite,m_CRec
[5000]成員變量是發(fā)送緩沖區(qū),由管理者線程M和工作者線程評?共同使用,讀指針m_nRead記錄發(fā)送緩沖區(qū)中已經(jīng)發(fā)送到第幾條記錄,由工作者線程Wn使用;寫指針m_nWrite記錄發(fā)送緩沖區(qū)中已經(jīng)寫到第幾條記錄,由管理者線程M使用。
[0013]所述第二步中發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的調(diào)配與寫入實現(xiàn)方式如下:
[0014]管理者線程M從代發(fā)數(shù)據(jù)堆中獲取發(fā)送的數(shù)據(jù)匕后,計算所有W n的負(fù)荷情況,定義工作者線程1?的負(fù)荷為W abs (m_nffrite-m_nRead),其中abs表示絕對值,找出任務(wù)負(fù)荷最小者wn_后將D s寫入W ?_的m_CRec發(fā)送緩沖區(qū)中,同時將該發(fā)送緩沖區(qū)的寫指針m_nWrite加1,M線程無限循環(huán)。
[0015]所述第二步中工作者線程Wn讀取和轉(zhuǎn)發(fā)緩沖發(fā)送區(qū)內(nèi)數(shù)據(jù)的方式如下:
[0016]工作者線程樣自己的發(fā)送緩沖區(qū)m_CRec中獲取一條未發(fā)送記錄D s后進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),成功后將m_CRec發(fā)送緩沖區(qū)讀指針m_nRead加I ;然后判斷自己的發(fā)送負(fù)荷量,如果負(fù)荷量大于O則繼續(xù)循環(huán)發(fā)送。
[0017]所述讀指針m_nRead如果與寫指針m_nWrite相等,則讀指針m_nRead加I,覆蓋一條未發(fā)送記錄。
[0018]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
[0019]本發(fā)明既能提高數(shù)據(jù)轉(zhuǎn)發(fā)效率,又能消除對硬件條件和線程數(shù)量的過度依賴。管理者線程M發(fā)送任務(wù)的調(diào)度處理方法簡單易用,經(jīng)過任務(wù)的合理分配,發(fā)送線程數(shù)量控制在5到8個左右就可以達(dá)到要求,降低了服務(wù)器硬件要求;同時,由于線程數(shù)量的合理運用,操作系統(tǒng)調(diào)度更加合理,整體效率得到提升,初步估算約為30% -50% ;該方法通過負(fù)荷量計算,合理分配發(fā)送任務(wù),提高了數(shù)據(jù)轉(zhuǎn)發(fā)效率。通過試驗驗證,利用該方法,在20個客戶端情況下,實現(xiàn)任意客戶端之間的數(shù)據(jù)傳輸,按照每秒50條記錄,一條記錄長度為10240字節(jié)傳輸,接收方時延僅為200毫秒,比多線程搶占式發(fā)送效率提升了 300% -500%。
【附圖說明】
[0020]圖1是實施例1原理圖。
【具體實施方式】
[0021]下面結(jié)合附圖對本發(fā)明實施例做進(jìn)一步描述:
[0022]實施例1:
[0023]如圖1所示,本發(fā)明所述軟總線程序并發(fā)資源分配方法,包括以下步驟:
[0024]第一步,建立應(yīng)用級線程池,預(yù)先啟動若干個工作者線程Wn (η = 1,2,…,N,N取大于2的整數(shù))和一個管理者線程M ;
[0025]第二步,為每一個工作者線程^定義一個發(fā)送緩沖區(qū),由管理者線程M進(jìn)行該發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的調(diào)配與寫入,由工作者線程^進(jìn)行該發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的讀取和轉(zhuǎn)發(fā)。
[0026]其中,所述發(fā)送緩沖區(qū)具體定義方式如下:
[0027]定義CBuf類,這個類中包含一個CRec類型的成員變量m_CRec
[5000]、一個int類型的讀指針m_nRead和一個int類型的寫指針m_nWrite,m_CRec
[5000]成員變量是發(fā)送緩沖區(qū),由管理者線程M和工作者線程評?共同使用,讀指針m_nRead記錄發(fā)送緩沖區(qū)中已經(jīng)發(fā)送到第幾條記錄,由工作者線程Wn使用;寫指針m_nWrite記錄發(fā)送緩沖區(qū)中已經(jīng)寫到第幾條記錄,由管理者線程M使用。
[0028]所述第二步中發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的調(diào)配與寫入實現(xiàn)方式如下:
[0029]管理者線程M從代發(fā)數(shù)據(jù)堆中獲取發(fā)送的數(shù)據(jù)匕后,計算所有W n的負(fù)荷情況,定義工作者線程1?的負(fù)荷為W abs (m_nffrite-m_nRead),其中abs表示絕對值,找出任務(wù)負(fù)荷最小者Wnnun后將D s寫入W ?_的m_CRec發(fā)送緩沖區(qū)中,同時將該發(fā)送緩沖區(qū)的寫指針m_nWrite加1,M線程無限循環(huán)。
[0030]所述第二步中工作者線程Wn讀取和轉(zhuǎn)發(fā)緩沖發(fā)送區(qū)內(nèi)數(shù)據(jù)的方式如下:
[0031 ] 工作者線程樣自己的發(fā)送緩沖區(qū)m_CRec中獲取一條未發(fā)送記錄D s后進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),成功后將m_CRec發(fā)送緩沖區(qū)讀指針m_nRead加I ;然后判斷自己的發(fā)送負(fù)荷量,如果負(fù)荷量大于O則繼續(xù)循環(huán)發(fā)送。
[0032]所述讀指針m_nRead如果與寫指針m_nWrite相等,則讀指針m_nRead加I,覆蓋一條未發(fā)送記錄。
[0033]本發(fā)明既能提高數(shù)據(jù)轉(zhuǎn)發(fā)效率,又能消除對硬件條件和線程數(shù)量的過度依賴。管理者線程M發(fā)送任務(wù)的調(diào)度處理方法簡單易用,經(jīng)過任務(wù)的合理分配,發(fā)送線程數(shù)量控制在5到8個左右就可以達(dá)到要求,降低了服務(wù)器硬件要求;同時,由于線程數(shù)量的合理運用,操作系統(tǒng)調(diào)度更加合理,整體效率得到提升,初步估算約為30% -50% ;該方法通過負(fù)荷量計算,合理分配發(fā)送任務(wù),提高了數(shù)據(jù)轉(zhuǎn)發(fā)效率。
[0034]以20個客戶端為例,每個客戶端內(nèi)搭建一軟總線模塊,任意兩個客戶端之間進(jìn)行信息交互時,所述軟總線模塊利用上述軟總線程序并發(fā)資源分配方法進(jìn)行資源的并發(fā)和分配,按照每秒50條記錄,一條記錄長度為10240字節(jié)傳輸,接收方時延僅為200毫秒,比多線程搶占式發(fā)送效率提升了 300% -500%。
【主權(quán)項】
1.一種軟總線程序并發(fā)資源分配方法,其特征在于,包括以下步驟: 第一步,建立應(yīng)用級線程池,預(yù)先啟動若干個工作者線程Wn (η = I, 2,…,N,N取大于2的整數(shù))和一個管理者線程M ; 第二步,為每一個工作者線程胃?定義一個發(fā)送緩沖區(qū),由管理者線程M進(jìn)行該發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的調(diào)配與寫入,由工作者線程Wn進(jìn)行該發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的讀取和轉(zhuǎn)發(fā)。2.根據(jù)權(quán)利要求1所述的軟總線程序并發(fā)資源分配方法,其特征在于,所述發(fā)送緩沖區(qū)具體定義方式如下: 定義CBuf類,這個類中包含一個CRec類型的成員變量m_CRec [5000]、一個int類型的讀指針m_nRead和一個int類型的寫指針m_nWrite,m_CRec [5000]成員變量是發(fā)送緩沖區(qū),由管理者線程M和工作者線程評?共同使用,讀指針m_nRead記錄發(fā)送緩沖區(qū)中已經(jīng)發(fā)送到第幾條記錄,由工作者線程Wn使用;寫指針m_nWrite記錄發(fā)送緩沖區(qū)中已經(jīng)寫到第幾條記錄,由管理者線程M使用。3.根據(jù)權(quán)利要求2所述的軟總線程序并發(fā)資源分配方法,其特征在于,所述第二步中工作者線程Wn讀取和轉(zhuǎn)發(fā)緩沖發(fā)送區(qū)內(nèi)數(shù)據(jù)的方式如下: 工作者線程Wn從自己的發(fā)送緩沖區(qū)m_CRec中獲取一條未發(fā)送記錄D s后進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),成功后將m_CRec發(fā)送緩沖區(qū)讀指針m_nRead加I ;然后判斷自己的發(fā)送負(fù)荷量,如果負(fù)荷量大于O則繼續(xù)循環(huán)發(fā)送。4.根據(jù)權(quán)利要求2所述的軟總線程序并發(fā)資源分配方法,其特征在于,所述第二步中發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的調(diào)配與寫入實現(xiàn)方式如下: 管理者線程M從代發(fā)數(shù)據(jù)堆中獲取發(fā)送的數(shù)據(jù)匕后,計算所有W n的負(fù)荷情況,定義工作者線程1的負(fù)荷為Wnftif= abs (m_nffrite-m_nRead),其中abs表示絕對值,找出任務(wù)負(fù)荷最小者Wnnun后將D s寫入Wnnun的m_CRec發(fā)送緩沖區(qū)中,同時將該發(fā)送緩沖區(qū)的寫指針m_nWrite加1,M線程無限循環(huán)。5.根據(jù)權(quán)利要求4所述的軟總線程序并發(fā)資源分配方法,其特征在于,所述讀指針m_nRead如果與寫指針m_nWrite相等,則讀指針m_nRead加1,覆蓋一條未發(fā)送記錄。6.根據(jù)權(quán)利要求1所述的軟總線程序并發(fā)資源分配方法,其特征在于,所述工作者線程定義5-8個,即N取5-8。
【專利摘要】本發(fā)明屬于一種數(shù)據(jù)處理方法,具體涉及一種軟總線程序并發(fā)資源分配方法,包括以下步驟:第一步,建立應(yīng)用級線程池,預(yù)先啟動若干個工作者線程Wn(n=1,2,…,N,N取大于2的整數(shù))和一個管理者線程M;第二步,為每一個工作者線程Wn定義一個發(fā)送緩沖區(qū),由管理者線程M進(jìn)行該發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的調(diào)配與寫入,由工作者線程Wn進(jìn)行該發(fā)送緩沖區(qū)內(nèi)發(fā)送數(shù)據(jù)的讀取和轉(zhuǎn)發(fā)。本發(fā)明既能提高數(shù)據(jù)轉(zhuǎn)發(fā)效率,又能消除對硬件條件和線程數(shù)量的過度依賴,管理者線程M發(fā)送任務(wù)的調(diào)度處理方法簡單易用,發(fā)送線程數(shù)量控制在5到8個左右就可以達(dá)到要求,通過負(fù)荷量計算,合理分配發(fā)送任務(wù),提高了數(shù)據(jù)轉(zhuǎn)發(fā)效率。
【IPC分類】G06F9/48
【公開號】CN105183553
【申請?zhí)枴緾N201510731501
【發(fā)明人】劉國永, 徐傳倫, 張憲強(qiáng), 張萬征
【申請人】山東智洋電氣股份有限公司
【公開日】2015年12月23日
【申請日】2015年10月31日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
平顺县| 文山县| 东乡县| 佛学| 广丰县| 鄂温| 郯城县| 怀仁县| 田东县| 隆回县| 江华| 德化县| 荣昌县| 纳雍县| 额尔古纳市| 武隆县| 梓潼县| 木里| 鄯善县| 本溪| 呼图壁县| 西丰县| 苗栗市| 泽库县| 宁海县| 汝城县| 琼结县| 谢通门县| 景东| 玉田县| 鲁甸县| 金阳县| 武夷山市| 霍城县| 潜江市| 修武县| 玛纳斯县| 永年县| 石台县| 武冈市| 全州县|