專利名稱:一種播放器數(shù)據(jù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多任務(wù)線程數(shù)據(jù)處理,尤其是涉及可廣泛的應(yīng)用于各種流媒體播放的嵌入式或消費(fèi)類電子設(shè)備中數(shù)據(jù)處理方法。
背景技術(shù):
在復(fù)雜的軟件開發(fā)及設(shè)計中,如網(wǎng)絡(luò)播放,通常需要采用線程多任務(wù)的復(fù)雜設(shè)計, 對于這樣的程序設(shè)計案例中,通常都會遇到兩個比較常見的難題第一,共享數(shù)據(jù)的訪問及保護(hù),解決該問題通常的做法是采用鎖機(jī)制,實(shí)現(xiàn)訪問共享數(shù)據(jù)的同步性及安全性,但是鎖機(jī)制會增加系統(tǒng)資源開支,嚴(yán)重限制數(shù)據(jù)的處理效率,該問題在高速流媒體數(shù)據(jù)的處理中尤其突出;第二,復(fù)雜的程序設(shè)計,復(fù)雜的數(shù)據(jù)處理流程,通常會導(dǎo)致程序設(shè)計難度成倍增加,程序架構(gòu)設(shè)計不當(dāng)會使軟件存在不易維護(hù),擴(kuò)展性差等不良后果,所以良好的程序框架決定了軟件質(zhì)量的高度。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是針對訪問共享數(shù)據(jù)枷鎖的問題,提供一種隊列隊頭或隊尾有不同變量標(biāo)識,數(shù)據(jù)可以從隊尾寫入、隊頭取出或者從隊頭寫入、隊尾寫入,使得對隊列的數(shù)據(jù)讀寫操作獨(dú)立開各隊列資源實(shí)現(xiàn)循環(huán)利用,完成數(shù)據(jù)高效傳輸處理,同時只有一個線程訪問隊列的讀寫位置。避免了對貢共享數(shù)據(jù)的訪問。本發(fā)明采用的技術(shù)方案如下
一種播放器數(shù)據(jù)處理方法,包括步驟
步驟SI :—個線程唯一訪問相鄰線程FIFO隊列的讀指針或者寫指針,所述隊列的讀指針對應(yīng)隊頭變量標(biāo)識,所述寫指針對應(yīng)隊尾變量標(biāo)識。所述線程為2個以上的子線程。所述子線程包括一個以上FIFO隊列。所述子線程包括數(shù)據(jù)接收線程、數(shù)據(jù)解析線程、數(shù)據(jù)排序線程、數(shù)據(jù)解碼線程、數(shù)據(jù)回收線程,則數(shù)據(jù)處理過程為
數(shù)據(jù)接收線程將數(shù)據(jù)從數(shù)據(jù)接收隊列通過數(shù)據(jù)接收隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)解析隊列隊尾變量標(biāo)識寫入數(shù)據(jù)解析隊列;
數(shù)據(jù)解析線程將數(shù)據(jù)從數(shù)據(jù)解析隊列通過數(shù)據(jù)解析隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)排序隊列隊尾變量標(biāo)識寫入數(shù)據(jù)排序隊列;
數(shù)據(jù)排序線程將數(shù)據(jù)從數(shù)據(jù)排序隊列通過數(shù)據(jù)排序隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)解碼隊列隊尾變量標(biāo)識寫入數(shù)據(jù)解碼隊列;
數(shù)據(jù)解碼線程將數(shù)據(jù)從數(shù)據(jù)解碼隊列通過數(shù)據(jù)解碼隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)回收隊列隊尾變量標(biāo)識寫入數(shù)據(jù)回收隊列;
數(shù)據(jù)回收線程將數(shù)據(jù)從數(shù)據(jù)回收隊列通過數(shù)據(jù)回收隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)接收隊列隊尾變量標(biāo)識寫入數(shù)據(jù)接收隊列。
所述數(shù)據(jù)是從隊尾寫入、隊頭取出。綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是
提供一種隊列隊頭或隊尾有不同變量標(biāo)識,數(shù)據(jù)可以從隊尾寫入、隊頭取出或者從隊頭寫入、隊尾寫入,使得對隊列的數(shù)據(jù)讀寫操作獨(dú)立開各隊列資源實(shí)現(xiàn)循環(huán)利用,完成數(shù)據(jù)高效傳輸處理,同時只有一個線程訪問隊列的讀寫位置。解決了共享數(shù)據(jù)訪問加鎖的難題,同時軟件設(shè)計實(shí)現(xiàn)了模塊化,增強(qiáng)了軟件的可維護(hù)性及擴(kuò)展性。
本發(fā)明將通過例子并參照附圖的方式說明,其中
圖I是本發(fā)明在播放器設(shè)計中的應(yīng)用流程圖。
具體實(shí)施例方式本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。本說明書(包括任何附加權(quán)利要求、摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。實(shí)施例一一種播放器數(shù)據(jù)處理方法,其特征在于包括步驟
步驟SI :—個線程唯一訪問相鄰線程FIFO隊列的讀指針或者寫指針,所述隊列的讀指針對應(yīng)隊頭變量標(biāo)識,所述寫指針對應(yīng)隊尾變量標(biāo)識。實(shí)施例二 在實(shí)施例一基礎(chǔ)上,線程為2個以上的子線程。實(shí)施例三在實(shí)施例二基礎(chǔ)上,子線程包括一個以上FIFO隊列。如圖I所示,實(shí)施例四,在實(shí)施例二或者實(shí)施例三基礎(chǔ)上,子線程包括數(shù)據(jù)接收線程、數(shù)據(jù)解析線程、數(shù)據(jù)排序線程、數(shù)據(jù)解碼線程、數(shù)據(jù)回收線程,則數(shù)據(jù)處理過程為
數(shù)據(jù)接收線程將數(shù)據(jù)(簡稱data)從數(shù)據(jù)接收隊列(socket隊列)通過數(shù)據(jù)接收隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)解析隊列隊尾變量標(biāo)識寫入數(shù)據(jù)解析隊列;
數(shù)據(jù)解析線程將數(shù)據(jù)(簡稱data)從數(shù)據(jù)解析隊列(Demux隊列)通過數(shù)據(jù)解析隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)排序隊列隊尾變量標(biāo)識寫入數(shù)據(jù)排序隊列;
數(shù)據(jù)排序線程將數(shù)據(jù)(簡稱data)從數(shù)據(jù)排序隊列(Sort隊列)通過數(shù)據(jù)排序隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)解碼隊列隊尾變量標(biāo)識寫入數(shù)據(jù)解碼隊列;
數(shù)據(jù)解碼線程將數(shù)據(jù)(簡稱data)從數(shù)據(jù)解碼隊列(Inject隊列)通過數(shù)據(jù)解碼隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)回收隊列隊尾變量標(biāo)識寫入數(shù)據(jù)回收隊列;
數(shù)據(jù)回收線程將數(shù)據(jù)(簡稱data)從數(shù)據(jù)回收隊列(recycle隊列)通過數(shù)據(jù)回收隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)接收隊列隊尾變量標(biāo)識寫入數(shù)據(jù)接收隊列。實(shí)施例五,在實(shí)施例四基礎(chǔ)上,所述數(shù)據(jù)是從隊尾寫入、隊頭取出。本發(fā)明并不局限于前述的具體實(shí)施方式
。本發(fā)明擴(kuò)展到任何在本說明書中披露的新特征或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合。
權(quán)利要求
1.一種播放器數(shù)據(jù)處理方法,其特征在于包括步驟步驟SI :—個線程唯一訪問相鄰線程FIFO隊列的讀指針或者寫指針,所述隊列的讀指針對應(yīng)隊頭變量標(biāo)識,所述寫指針對應(yīng)隊尾變量標(biāo)識。
2.如權(quán)利要求I所述的一種播放器數(shù)據(jù)處理方法,其特征在于所述線程為2個以上的子線程。
3.如權(quán)利要求2所述的一種播放器數(shù)據(jù)處理方法,其特征在于所述子線程包括一個以上FIFO隊列。
4.如權(quán)利要求2或3所述的一種播放器數(shù)據(jù)處理方法,其特征在于所述子線程包括數(shù)據(jù)接收線程、數(shù)據(jù)解析線程、數(shù)據(jù)排序線程、數(shù)據(jù)解碼線程、數(shù)據(jù)回收線程,則數(shù)據(jù)處理過程為數(shù)據(jù)接收線程將數(shù)據(jù)從數(shù)據(jù)接收隊列通過數(shù)據(jù)接收隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)解析隊列隊尾變量標(biāo)識寫入數(shù)據(jù)解析隊列;數(shù)據(jù)解析線程將數(shù)據(jù)從數(shù)據(jù)解析隊列通過數(shù)據(jù)解析隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)排序隊列隊尾變量標(biāo)識寫入數(shù)據(jù)排序隊列;數(shù)據(jù)排序線程將數(shù)據(jù)從數(shù)據(jù)排序隊列通過數(shù)據(jù)排序隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)解碼隊列隊尾變量標(biāo)識寫入數(shù)據(jù)解碼隊列;數(shù)據(jù)解碼線程將數(shù)據(jù)從數(shù)據(jù)解碼隊列通過數(shù)據(jù)解碼隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)回收隊列隊尾變量標(biāo)識寫入數(shù)據(jù)回收隊列;數(shù)據(jù)回收線程將數(shù)據(jù)從數(shù)據(jù)回收隊列通過數(shù)據(jù)回收隊列隊頭變量標(biāo)識讀出,并通過數(shù)據(jù)接收隊列隊尾變量標(biāo)識寫入數(shù)據(jù)接收隊列。
5.如權(quán)利要求4所述的一種播放器數(shù)據(jù)處理方法,其特征在于所述數(shù)據(jù)是從隊尾寫入、隊頭取出。
全文摘要
本發(fā)明涉及多任務(wù)線程數(shù)據(jù)處理,尤其是涉及可廣泛的應(yīng)用于各種流媒體播放的嵌入式或消費(fèi)類電子設(shè)備中數(shù)據(jù)處理方法。針對訪問共享數(shù)據(jù)枷鎖的問題,提供一種隊列隊頭或隊尾有不同變量標(biāo)識,數(shù)據(jù)可以從隊尾寫入、隊頭取出或者從隊頭寫入、隊尾寫入,使得對隊列的數(shù)據(jù)讀寫操作獨(dú)立開各隊列資源實(shí)現(xiàn)循環(huán)利用,完成數(shù)據(jù)高效傳輸處理,同時只有一個線程訪問隊列的讀寫位置。避免了對貢共享數(shù)據(jù)的訪問。本方案通過各個子線程唯一訪問相鄰線程FIFO隊列的讀指針或者寫指針,隊列的讀指針對應(yīng)隊頭變量標(biāo)識,寫指針對應(yīng)隊尾變量標(biāo)識完成本設(shè)計。本設(shè)計應(yīng)用于播放器數(shù)據(jù)處理領(lǐng)域。
文檔編號G06F9/46GK102591936SQ20111044276
公開日2012年7月18日 申請日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者唐勇, 張英平, 申及 申請人:四川九洲電器集團(tuán)有限責(zé)任公司