基于tcp協(xié)議多線程的多對多醫(yī)療數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種基于TCP協(xié)議多線程的多對多醫(yī)療數(shù)據(jù)傳輸方法。
【背景技術(shù)】
[0002]隨著計算機應(yīng)用的快速發(fā)展,計算機處理器已經(jīng)廣泛的應(yīng)用在移動通信、數(shù)字消費電子和智能控制設(shè)備領(lǐng)域,人們對計算機處理器的各項性能的要求也越來越高,TCP傳輸協(xié)議是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,在醫(yī)療領(lǐng)域中,大多采用TCP協(xié)議進行傳輸,然而,在單線程處理器結(jié)構(gòu)中只能發(fā)掘一個線程的指令級,傳輸效率低,多線程是指從軟件或者硬件上實現(xiàn)多個線程并發(fā)執(zhí)行的技術(shù)。具有多線程能力的計算機因有硬件支持而能夠在同一時間執(zhí)行多于一個線程,進而提升整體處理性能,其中,針對多核或多處理器中多線程的并發(fā)資源貢獻分配如何進行優(yōu)化,是能充分發(fā)揮計算機處理能力中的非常重要的一環(huán),現(xiàn)有的多線程共享資源通常都在資源分配的過程中產(chǎn)生了加鎖、解鎖的性能消耗和沖突,當(dāng)一線程正在進行操作時,需要讓其他線程等待,需要其他線程等待操作完成之后,解鎖并將其釋放才能進行操作,這樣會導(dǎo)致更新數(shù)據(jù)時需要頻繁的加鎖、解鎖,造成讀寫線程等待時間過長,嚴重降低了多線程處理的效率,因此,需要一種新的多線程處理方法以解決上述問題。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明提供一種基于TCP協(xié)議多線程的多對多醫(yī)療數(shù)據(jù)傳輸方法,以解決上述問題。
[0004]本發(fā)明提供的基于TCP協(xié)議多線程的多對多醫(yī)療數(shù)據(jù)傳輸方法,包括:
[0005]a.建立用戶數(shù)據(jù)轉(zhuǎn)發(fā)會話組,
[0006]b.會話組內(nèi)的用戶通過接收線程、發(fā)送線程和用戶處理線程將數(shù)據(jù)實時發(fā)送給會話組內(nèi)的其他用戶,同時接收會話組內(nèi)其他用戶發(fā)送的數(shù)據(jù),所述接收線程、發(fā)送線程和用戶處理線程之間相互獨立。
[0007]進一步,所述步驟b具體包括:
[0008]bl.接收線程將接收用戶發(fā)送的數(shù)據(jù),并將數(shù)據(jù)加入到接收隊列,同時通知用戶處理線程,
[0009]b2.用戶處理線程從接收隊列中獲取數(shù)據(jù),根據(jù)需求將數(shù)據(jù)分發(fā)至對應(yīng)用戶的發(fā)送隊列,
[0010]b3.發(fā)送線程從發(fā)送隊列中獲取數(shù)據(jù)并發(fā)送。
[0011]進一步,所述接收隊列為用于存儲轉(zhuǎn)發(fā)服務(wù)器接收到的該用戶發(fā)送的數(shù)據(jù)的數(shù)據(jù)隊列;所述發(fā)送隊列為用戶用于存儲即將發(fā)送給該用戶的數(shù)據(jù)的數(shù)據(jù)隊列。
[0012]進一步,接收線程、發(fā)送線程和用戶處理線程設(shè)置有對應(yīng)的消息隊列,所述消息隊列包括接收消息隊列、發(fā)送消息隊列和用戶消息隊列。
[0013]進一步,所述步驟bl具體包括:
[0014]接收消息隊列將添加有用戶身份信息的消息發(fā)送至接收線程,接收線程根據(jù)消息中的用戶身份信息獲取數(shù)據(jù),并加入該用戶的接收隊列,同時在用戶處理消息隊列中將添加有該用戶身份信息的消息,發(fā)送至用戶處理線程。
[0015]進一步,所述步驟b2具體包括:
[0016]b21用戶處理線程根據(jù)用戶處理消息隊列發(fā)送的消息中的用戶身份信息,從接收隊列中獲取數(shù)據(jù)并進行處理;
[0017]b22.用戶處理線程根據(jù)數(shù)據(jù)來源用戶的請求查找應(yīng)接收該數(shù)據(jù)的待轉(zhuǎn)發(fā)用戶,并將數(shù)據(jù)增加到所述待轉(zhuǎn)發(fā)用戶對應(yīng)的發(fā)送隊列中,同時將向所述待轉(zhuǎn)發(fā)用戶的發(fā)送消息隊列發(fā)送通知消息。
[0018]進一步,所述步驟b3具體包括:
[0019]發(fā)送線程接收到所述通知消息,根據(jù)身份信息獲取對應(yīng)的發(fā)送隊列數(shù)據(jù)并發(fā)送。
[0020]進一步,所述接收線程、發(fā)送線程和用戶處理線程中的每條線程為服務(wù)器上的所有用戶服務(wù)。
[0021]本發(fā)明的有益效果:本發(fā)明通過構(gòu)建相互獨立的接收線程、發(fā)送線程、用戶處理線程,有效的解決了用戶延遲對服務(wù)器的影響,本發(fā)明使傳輸具有實時性強、易于使用、高性能,操作簡便實用,可擴展性好的特點,用戶可以傳輸任意形式的數(shù)據(jù),如數(shù)據(jù)流、文件等,為基于TCP協(xié)議多線程的多對多醫(yī)療數(shù)據(jù)傳輸提供了一整套高性能傳輸?shù)慕鉀Q方案。
【附圖說明】
[0022]下面結(jié)合附圖和實施例對本發(fā)明作進一步描述:
[0023I圖1是本發(fā)明的原理示意圖。
[0024]圖2是本發(fā)明的實施例的流程不意圖。
【具體實施方式】
[0025]下面結(jié)合附圖和實施例對本發(fā)明作進一步描述:圖1是本發(fā)明的原理示意圖,圖2是本發(fā)明的實施例的流程示意圖。
[0026]如圖1、2所示,本實施例中的基于TCP協(xié)議多線程的多對多醫(yī)療數(shù)據(jù)傳輸方法,包括:
[0027]a.建立用戶數(shù)據(jù)轉(zhuǎn)發(fā)會話組,
[0028]b.會話組內(nèi)的用戶通過接收線程、發(fā)送線程和用戶處理線程將數(shù)據(jù)實時發(fā)送給會話組內(nèi)的其他用戶,同時接收會話組內(nèi)其他用戶發(fā)送的數(shù)據(jù),所述接收線程、發(fā)送線程和用戶處理線程之間相互獨立。
[0029]本實施例基于TCP的多對多中轉(zhuǎn)傳輸,處理會話組內(nèi)成員數(shù)據(jù)相互轉(zhuǎn)發(fā),有效解決了用戶1延遲對服務(wù)器的影響,可擴展性和健壯性良好,用戶可以傳輸任意形式的數(shù)據(jù),包括數(shù)據(jù)流、文件等。本實施例中的多對多傳輸,首先要用戶之間建立一個會話組,會話組中的用戶可以相互同步實時分享自己的數(shù)據(jù)給會話組內(nèi)每一個用戶,同時能接收會話組內(nèi)所有用戶發(fā)送過來的數(shù)據(jù)。數(shù)據(jù)可以包括文字、文件、實時聲音、實時影像等可以轉(zhuǎn)換為二進制流形式的數(shù)據(jù)。當(dāng)用戶之間確定建立會話組后,任意用戶的數(shù)據(jù)可以同步被同一會話組中所有用戶接收,同時用戶可以接收來自同一會話組中其他所有用戶發(fā)送過來的數(shù)據(jù)。
[0030]在本實施例中,所述步驟b具體包括:
[0031]bl.接收線程將接收用戶發(fā)送的數(shù)據(jù),并將數(shù)據(jù)加入到接收隊列,同時通知用戶處理線程,
[0032]b2.用戶處理線程從接收隊列中獲取數(shù)據(jù),根據(jù)需求將數(shù)據(jù)分發(fā)至對應(yīng)用戶的發(fā)送隊列,
[0033]b3.發(fā)送線程從發(fā)送隊列中獲取數(shù)據(jù)并發(fā)送。
[0034]在本實施例中,所述接收