本發(fā)明涉及數(shù)據(jù)處理領域,尤其涉及一種網絡數(shù)據(jù)處理方法及裝置。
背景技術:
隨著網絡技術的發(fā)展,越來越多的數(shù)據(jù)需要通過網絡進行傳輸。連接至網絡的終端例如計算機、服務器等,可以對網絡數(shù)據(jù)進行處理,也就是在通過網絡接收到網絡數(shù)據(jù),并對網絡數(shù)據(jù)進行進一步的運用。
在現(xiàn)有技術中,網絡數(shù)據(jù)處理方法的效率有待提高。
技術實現(xiàn)要素:
本發(fā)明解決的技術問題是提升網絡數(shù)據(jù)處理方法的效率。
為解決上述技術問題,本發(fā)明實施例提供一種網絡數(shù)據(jù)處理方法,包括:至少兩個網絡線程競爭性地接收網絡數(shù)據(jù),所述競爭性地接收是指空閑度高的網絡線程優(yōu)先接收;根據(jù)所述網絡數(shù)據(jù)的時效性要求,將所述網絡數(shù)據(jù)分發(fā)至不同的隊列;所述隊列將所述網絡數(shù)據(jù)發(fā)送至用戶界面。
可選的,所述不同的隊列包括第一隊列和第二隊列,根據(jù)終端對數(shù)據(jù)時效性要求的不同,所述網絡數(shù)據(jù)被分為第一類數(shù)據(jù)和第二類數(shù)據(jù),所述第一類數(shù)據(jù)的時效性要求高于所述第二類數(shù)據(jù)的時效性要求,所述第一類數(shù)據(jù)被分發(fā)至第一隊列,所述第二類數(shù)據(jù)被分發(fā)至第二隊列。
可選的,所述第一隊列緩存實時推送類型的網絡數(shù)據(jù),所述第二隊列緩存請求響應類型的網絡數(shù)據(jù)。
可選的,所述第一隊列向用戶界面實時推送所述第一類數(shù)據(jù)。
可選的,所述網絡數(shù)據(jù)處理方法還包括:基于所述用戶界面生成的數(shù)據(jù)請求,產生并記錄該數(shù)據(jù)請求的序列號,所述數(shù)據(jù)請求用于請求所述網絡數(shù)據(jù);所述第二隊列緩存響應所述數(shù)據(jù)請求的網絡數(shù)據(jù),所述第二隊列中的網絡數(shù)據(jù)包含與所述序列號相匹配的標識。
可選的,根據(jù)所述網絡數(shù)據(jù)的時效性要求,所述網絡線程與各自的輔助線程對應,其中,將所述網絡數(shù)據(jù)分發(fā)至不同的隊列包括:通過與所述至網絡線程對應的輔助線程對所述網絡數(shù)據(jù)進行處理;所述輔助線程對所述網絡數(shù)據(jù)進行分類,以分發(fā)至不同的隊列;所述輔助線程通知用戶界面進行處理。
可選的,所述至少兩個網絡線程分別對應不同的soket套接字。
本發(fā)明實施例還提供一種網絡數(shù)據(jù)處理裝置,包括:線程控制單元,適于控制至少兩個網絡線程競爭性地接收網絡數(shù)據(jù),所述競爭性地接收是指空閑度高的網絡線程優(yōu)先接收;隊列分發(fā)單元,適于根據(jù)所述網絡數(shù)據(jù)的時效性要求,將所述網絡數(shù)據(jù)分發(fā)至不同的隊列;隊列控制單元,適于指示所述隊列將所述網絡數(shù)據(jù)發(fā)送至用戶界面。
可選的,所述不同的隊列包括第一隊列和第二隊列,根據(jù)終端對數(shù)據(jù)時效性要求的不同,所述網絡數(shù)據(jù)被所述隊列分發(fā)單元分為第一類數(shù)據(jù)和第二類數(shù)據(jù),所述第一類數(shù)據(jù)的時效性要求高于所述第二類數(shù)據(jù)的時效性要求,所述第一類數(shù)據(jù)被所述隊列分發(fā)單元分發(fā)至第一隊列,所述第二類數(shù)據(jù)被所述隊列分發(fā)單元分發(fā)至第二隊列。
可選的,所述第一隊列適于緩存實時推送類型的網絡數(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ù)據(jù)進行處理;輔助線程控制單元,適于控制所述輔助線程對所述網絡數(shù)據(jù)進行分類,以分發(fā)至不同的隊列;通知單元,適于控制所述輔助線程通知 用戶界面進行處理。
可選的,所述至少兩個網絡線程分別對應不同的soket套接字。
與現(xiàn)有技術相比,本發(fā)明實施例的技術方案具有以下有益效果:
通過至少兩個網絡線程競爭性地接收網絡數(shù)據(jù),可以使得多個網絡線程中空閑度交高的網絡線程優(yōu)先接收,從而可以提升網絡數(shù)據(jù)的接收效率,進而提升網絡數(shù)據(jù)的處理效率;通過對網絡數(shù)據(jù)進行時效性的區(qū)分,將網絡數(shù)據(jù)分發(fā)至不同隊列,可以使得對時效性要求較高的數(shù)據(jù)與對時效性要求較低的數(shù)據(jù)分離,提升對時效性要求較高的數(shù)據(jù)的處理效率,從而提升網絡數(shù)據(jù)處理方法的效率。
附圖說明
圖1是本發(fā)明實施例中一種網絡數(shù)據(jù)處理方法的流程圖;
圖2是本發(fā)明實施例中一種將所述網絡數(shù)據(jù)分發(fā)至不同的隊列的方法流程圖;
圖3是本發(fā)明實施例中一種網絡數(shù)據(jù)處理裝置的結構示意圖。
具體實施方式
隨著網絡技術的發(fā)展,越來越多的數(shù)據(jù)需要通過網絡進行傳輸。連接至網絡的終端例如計算機、服務器等,可以對網絡數(shù)據(jù)進行處理,也就是在通過網絡接收到網絡數(shù)據(jù),并對網絡數(shù)據(jù)進行進一步的運用。在現(xiàn)有技術中,網絡數(shù)據(jù)處理方法的效率有待提高。
本發(fā)明實施例通過至少兩個網絡線程競爭性地接收網絡數(shù)據(jù),可以使得多個網絡線程中空閑度較高的網絡線程優(yōu)先接收待處理的網絡數(shù)據(jù),從而可以提升網絡數(shù)據(jù)的接收效率,進而提升網絡數(shù)據(jù)的處理效率;通過對網絡數(shù)據(jù)進行時效性的區(qū)分,將網絡數(shù)據(jù)分發(fā)至不同隊列,可以使得對時效性要求較高的數(shù)據(jù)與對時效性要求較低的數(shù)據(jù)分離,提升對時效性要求較高的數(shù)據(jù)的處理效率,從而提升網絡數(shù)據(jù)處理方法的效率。
為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結合附圖對本發(fā)明的具體實施例做詳細的說明。
圖1是本發(fā)明實施例中一種網絡數(shù)據(jù)處理方法的流程圖。
在步驟s11中,至少兩個網絡線程競爭性地接收網絡數(shù)據(jù),所述競爭性地接收是指空閑度高的網絡線程優(yōu)先接收。
設置至少兩個網絡線程,所述網絡線程適于接收網絡數(shù)據(jù)。在網絡數(shù)據(jù)到來時,判斷每個網絡線程的空閑度,利用空閑度較高的線程接收網絡數(shù)據(jù),從而可以使得網絡數(shù)據(jù)可以通過多個線程接收,提升網絡數(shù)據(jù)接收的效率,進而提升網絡數(shù)據(jù)處理的效率。其中,網絡線程的空閑度可以根據(jù)網絡線程在單位時間內處于“忙”狀態(tài)和“閑”狀態(tài)的時間比例來衡量,或者也可以采用單位時間內接收的數(shù)據(jù)量來衡量,或者還可以采用其他任何適當?shù)姆绞絹砗饬俊?/p>
在具體實施中,所述至少兩個網絡線程分別對應不同的soket套接字。
在步驟s12中,根據(jù)所述網絡數(shù)據(jù)的時效性要求,將所述網絡數(shù)據(jù)分發(fā)至不同的隊列。
在網絡數(shù)據(jù)處理的過程中,包括終端對網絡數(shù)據(jù)的接收和進一步運用。在對網絡數(shù)據(jù)進行運用時,有對網絡數(shù)據(jù)的實時性要求比較高的運用,也有對網絡數(shù)據(jù)實時性要求較低的運用。有些網絡數(shù)據(jù)需要進行實時處理,對時效性要求較高,例如在用戶界面進行實時刷新和顯示;有些網絡數(shù)據(jù)的處理實時性較低,例如利用網絡數(shù)據(jù)完成某個請求響應。
若將所有網絡數(shù)據(jù)不加區(qū)分,全部放在同一個隊列中,會影響對網絡數(shù)據(jù)的時效性要求較高的運用的效率,進而影響到整個網絡數(shù)據(jù)處理的效率。通過時效性的不同對網絡數(shù)據(jù)進行區(qū)分,將對時效性要求較高的網絡數(shù)據(jù)和對時效性要求較低的網絡數(shù)據(jù)分別分發(fā)至不同的隊列,可以減小不同類型網絡數(shù)據(jù)之間的相互影響,從而提升網絡數(shù)據(jù)的處理效率。
在具體實施中,將所述網絡數(shù)據(jù)分發(fā)至不同的隊列之前,需要對網絡數(shù)據(jù)進行接收。網絡數(shù)據(jù)由網絡包進行發(fā)送,在接收網絡包時,需要處理網絡讀消息過來后,網絡包可能產生的多種情況,如一次接收的網絡包可能是半個、1個半或n個數(shù)據(jù)包。這需要在客戶端網絡模塊,申請一塊內存區(qū)域,通常是環(huán)形隊列,用于存放未解析完的網絡包,等待下一次網絡包過來,與內 存中存放的網絡包進行拼接,如果仍不是一個完整包,則繼續(xù)等待接收,如此循環(huán)接收,直到獲得一個完整的數(shù)據(jù)包,只有得到一個完整的數(shù)據(jù)包,才是一次收發(fā)的結束,才能稱作為一個業(yè)務包,交由數(shù)據(jù)層進行解析處理,決定該業(yè)務包的分發(fā)。
在一具體實施中,所述不同的隊列包括第一隊列和第二隊列,根據(jù)終端對數(shù)據(jù)時效性要求的不同,所述網絡數(shù)據(jù)被分為第一類數(shù)據(jù)和第二類數(shù)據(jù),所述第一類數(shù)據(jù)的時效性要求高于所述第二類數(shù)據(jù)的時效性要求,所述第一類數(shù)據(jù)被分發(fā)至第一隊列,所述第二類數(shù)據(jù)被分發(fā)至第二隊列。
在本發(fā)明一實施例中,所述第一隊列適于緩存實時推送類型的網絡數(shù)據(jù),所述第二隊列適于緩存請求響應類型的網絡數(shù)據(jù)。其中,實時推送類型的網絡數(shù)據(jù)例如可以是用于用戶界面實時刷新和顯示的網絡數(shù)據(jù),請求響應類型的網絡數(shù)據(jù)例如可以是用于響應先前的某個請求的網絡數(shù)據(jù)。
參見圖2,在另一具體實施中,所述網絡線程與各自的輔助線程對應,步驟s12可以包括:
步驟s121,通過與所述至少一個網絡線程對應的輔助線程對所述網絡數(shù)據(jù)進行處理。
輔助線程可以對網絡數(shù)據(jù)進行完整性的判定和整合,例如前述完成對業(yè)務包的收發(fā)。在本發(fā)明一實施例中,該處理可以是在綁定于某一隱藏窗口的窗體線程里進行的。
輔助線程可以是與網絡線程一一對應的。通過網絡線程完成數(shù)據(jù)包的整合,得到業(yè)務包,可以減輕網絡線程的壓力,以提高網絡數(shù)據(jù)的接收效率。
步驟s122,所述輔助線程對所述網絡數(shù)據(jù)進行分類,以分發(fā)至不同的隊列。
輔助線程還可以在獲取完整業(yè)務包后對業(yè)務包進行解析,判斷網絡數(shù)據(jù)的類型,以將網絡數(shù)據(jù)分發(fā)至不同隊列。
步驟s123,所述輔助線程通知用戶界面進行處理。
輔助線程可以直接通知用戶界面對時效性較高的數(shù)據(jù)進行處理。對時效 性較低的數(shù)據(jù),當用戶界面層觸發(fā)數(shù)據(jù)層請求數(shù)據(jù)時,數(shù)據(jù)層需要將請求傳送到網絡線程;同理,當網絡數(shù)據(jù)到達網絡層后,網絡層也需要將網絡數(shù)據(jù)發(fā)送到輔助線程,輔助線程將數(shù)據(jù)放入隊列中,隊列再通過讀取數(shù)據(jù),找到對應用戶界面進行通知處理。
這樣避免在網絡線程上做耗時較長的處理,如果網絡線程停滯處理不必要的操作,將直接導致客戶端網絡線程被阻塞,無法收發(fā)網絡消息,導致性能大大降低,影響整個客戶端運作。
在步驟s13中,所述隊列將所述網絡數(shù)據(jù)發(fā)送至用戶界面。
不同的隊列可以根據(jù)網絡數(shù)據(jù)時效性的不同,將網絡數(shù)據(jù)在不同的時機發(fā)送至用戶界面。例如,可以將對時效性要求較高的數(shù)據(jù)實時推送至用戶界面,將對時效性要求較低的數(shù)據(jù)以響應用戶界面請求的方式返回至用戶界面。
在一具體實施中,所述第一隊列可以向用戶界面實時推送所述第一類數(shù)據(jù),以完成實時顯示。例如,在交易系統(tǒng)中,可以實時顯示不同數(shù)據(jù)來源的網絡數(shù)據(jù),由于在交易過程中,獲得交易信息、行情信息的速度相當關鍵,故將交易信息、行情信息等時效性要求較高的信息作為第一類數(shù)據(jù),利用第一隊列單獨對第一類數(shù)據(jù)進行緩存,可以提升網絡數(shù)據(jù)處理的效率,進而提升交易系統(tǒng)的效率,提升競爭優(yōu)勢。
在另一具體實施中,網絡數(shù)據(jù)處理方法還包括:基于所述用戶界面生成的數(shù)據(jù)請求,產生并記錄該數(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ù)據(jù)后,產生該數(shù)據(jù)請求的序列號,以待對應該數(shù)據(jù)請求的網絡數(shù)據(jù)返回后,相應該請求。
上述過程不同于阻塞式網絡,是一種異步網絡請求。在生成異步網絡請求后,數(shù)據(jù)不是立即返回,而只會返回一個狀態(tài),這時需要記錄這次請求的信息,將它存放在內存里,以便返回網絡數(shù)據(jù)后能夠找到對應的請求,再做 相應的處理。通常做法是客戶端自身產生一個自增的序列號,請求后存入一個map數(shù)據(jù)結構,然后等返回網絡數(shù)據(jù)后,通過返回的序列號,找到匹配的數(shù)據(jù)請求的序列號所對應的信息,然后進行處理。
返回的網絡數(shù)據(jù)由第二隊列進行緩存,第二隊列中的網絡數(shù)據(jù)包含與所述序列號相匹配的標識,該標識可以是返回的序列號,該序列號與數(shù)據(jù)請求的序列號相匹配,這樣就能保證請求不丟失,業(yè)務完整處理。
本發(fā)明實施例還提供一種網絡數(shù)據(jù)處理裝置,其結構示意圖參見圖3。
網絡數(shù)據(jù)處理裝置可以包括:
線程控制單元31,適于控制至少兩個網絡線程競爭性地接收網絡數(shù)據(jù),所述競爭性地接收是指空閑度高的網絡線程優(yōu)先接收;
隊列分發(fā)單元32,適于根據(jù)所述網絡數(shù)據(jù)的時效性要求,將所述網絡數(shù)據(jù)分發(fā)至不同的隊列;
隊列控制單元33,適于指示所述隊列將所述網絡數(shù)據(jù)發(fā)送至用戶界面。
在具體實施中,所述不同的隊列可以包括第一隊列和第二隊列,根據(jù)終端對數(shù)據(jù)時效性要求的不同,所述網絡數(shù)據(jù)被所述隊列分發(fā)單元32分為第一類數(shù)據(jù)和第二類數(shù)據(jù),所述第一類數(shù)據(jù)的時效性要求高于所述第二類數(shù)據(jù)的時效性要求,所述第一類數(shù)據(jù)被所述隊列分發(fā)單元32分發(fā)至第一隊列,所述第二類數(shù)據(jù)被所述隊列分發(fā)單元32分發(fā)至第二隊列。
在具體實施中,所述第一隊列適于緩存實時推送類型的網絡數(shù)據(jù),所述第二隊列適于緩存請求響應類型的網絡數(shù)據(jù)。
在具體實施中,所述隊列控制單元33可以包括第一隊列控制單元,適于控制所述第一隊列向用戶界面實時推送所述第一類數(shù)據(jù)。
在具體實施中,所述網絡數(shù)據(jù)處理裝置,還可以包括:請求單元34,適于基于所述用戶界面生成的數(shù)據(jù)請求,產生并記錄該數(shù)據(jù)請求的序列號,所述數(shù)據(jù)請求用于請求所述網絡數(shù)據(jù);所述隊列控制單元33可以包括第二隊列控制單元,適于控制所述第二隊列接收響應所述數(shù)據(jù)請求的網絡數(shù)據(jù),所述第二隊列中的網絡數(shù)據(jù)包含與所述序列號相匹配的標識。
在具體實施中,所述網絡線程與各自的輔助線程對應,其中,所述隊列分發(fā)單元32可以包括:
數(shù)據(jù)處理單元,適于通過與所述網絡線程對應的輔助線程對所述網絡數(shù)據(jù)進行處理;
輔助線程控制單元,適于控制所述輔助線程對所述網絡數(shù)據(jù)進行分類,以分發(fā)至不同的隊列;
通知單元,適于控制所述輔助線程通知用戶界面進行處理。
在具體實施中,所述至少兩個網絡線程可以分別對應不同的soket套接字。
本發(fā)明實施例中的網絡數(shù)據(jù)處理裝置的具體實現(xiàn)可以參照網絡數(shù)據(jù)處理方法。網絡數(shù)據(jù)處理裝置可以位于終端中。
本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:rom、ram、磁盤或光盤等。
雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領域技術人員,在不脫離本發(fā)明的精神和范圍內,均可作各種更動與修改,因此本發(fā)明的保護范圍應當以權利要求所限定的范圍為準。