1.一種適用于多生產(chǎn)者多消費者模式的數(shù)據(jù)管理方法,其特征在于,包括:
當多個生產(chǎn)者中的任一生產(chǎn)者產(chǎn)生新數(shù)據(jù)元素,則利用std::atomic類型,判斷預設隊列當前是否符合入列條件,如果是,則將該新數(shù)據(jù)元素緩存至所述預設隊列,如果否,則禁止將該新數(shù)據(jù)元素緩存至所述預設隊列;
當多個消費者中的任一消費者需要對所述預設隊列中緩存的數(shù)據(jù)元素進行處理,則利用std::atomic類型,判斷所述預設隊列當前是否符合出列條件,如果是,則從當前所述預設隊列中提取出相應的數(shù)據(jù)元素,并發(fā)送至相應的消費者,以進行相應的數(shù)據(jù)處理。
2.根據(jù)權(quán)利要求1所述的適用于多生產(chǎn)者多消費者模式的數(shù)據(jù)管理方法,其特征在于,所述判斷預設隊列當前是否符合入列條件的過程,包括:
判斷所述預設隊列當前是否已經(jīng)存滿,如果否,則判定當前所述預設隊列符合入列條件,如果是,則判定當前所述預設隊列不符合入列條件。
3.根據(jù)權(quán)利要求1所述的適用于多生產(chǎn)者多消費者模式的數(shù)據(jù)管理方法,其特征在于,所述判斷所述預設隊列當前是否符合出列條件的過程,包括:
判斷當前所述預設隊列中是否存在未處理的數(shù)據(jù)元素,如果是,則判定當前所述預設隊列符合出列條件,如果否,則判定當前所述預設隊列不符合出列條件。
4.根據(jù)權(quán)利要求1所述的適用于多生產(chǎn)者多消費者模式的數(shù)據(jù)管理方法,其特征在于,還包括:
對所述預設隊列進行實時監(jiān)視;
若監(jiān)視到當前所述預設隊列中的剩余緩存空間容量小于預設容量閾值,則發(fā)出相應的容量預警信息。
5.根據(jù)權(quán)利要求1至4任一項所述的適用于多生產(chǎn)者多消費者模式的數(shù)據(jù)管理方法,其特征在于,所述預設隊列為環(huán)形緩沖區(qū)。
6.一種適用于多生產(chǎn)者多消費者模式的數(shù)據(jù)管理系統(tǒng),其特征在于,包括:
入列管理模塊,用于當多個生產(chǎn)者中的任一生產(chǎn)者產(chǎn)生新數(shù)據(jù)元素,則利用std::atomic類型,判斷預設隊列當前是否符合入列條件,如果是,則將該新數(shù)據(jù)元素緩存至所述預設隊列,如果否,則禁止將該新數(shù)據(jù)元素緩存至所述預設隊列;
出列管理模塊,用于當多個消費者中的任一消費者需要對所述預設隊列中緩存的數(shù)據(jù)元素進行處理,則利用std::atomic類型,判斷所述預設隊列當前是否符合出列條件,如果是,則從當前所述預設隊列中提取出相應的數(shù)據(jù)元素,并發(fā)送至相應的消費者,以進行相應的數(shù)據(jù)處理。
7.根據(jù)權(quán)利要求6所述的適用于多生產(chǎn)者多消費者模式的數(shù)據(jù)管理系統(tǒng),其特征在于,所述入列管理模塊,包括:
第一判斷單元,用于當多個生產(chǎn)者中的任一生產(chǎn)者產(chǎn)生新數(shù)據(jù)元素,則利用std::atomic類型,判斷所述預設隊列當前是否已經(jīng)存滿,如果否,則判定當前所述預設隊列符合入列條件,如果是,則判定當前所述預設隊列不符合入列條件;
入列控制單元,用于當所述第一判斷單元判定當前所述預設隊列符合入列條件,則將該新數(shù)據(jù)元素緩存至所述預設隊列,當所述第一判斷單元判定當前所述預設隊列不符合入列條件,則禁止將該新數(shù)據(jù)元素緩存至所述預設隊列。
8.根據(jù)權(quán)利要求6所述的適用于多生產(chǎn)者多消費者模式的數(shù)據(jù)管理系統(tǒng),其特征在于,所述出列管理模塊,包括:
第二判斷單元,用于當多個消費者中的任一消費者需要對所述預設隊列中緩存的數(shù)據(jù)元素進行處理,則利用std::atomic類型,判斷當前所述預設隊列中是否存在未處理的數(shù)據(jù)元素,如果是,則判定當前所述預設隊列符合出列條件,如果否,則判定當前所述預設隊列不符合出列條件;
出列管理單元,用于當所述第二判斷單元判定當前所述預設隊列符合出列條件,則從當前所述預設隊列中提取出相應的數(shù)據(jù)元素,并發(fā)送至相應的消費者,以進行相應的數(shù)據(jù)處理。
9.根據(jù)權(quán)利要求6所述的適用于多生產(chǎn)者多消費者模式的數(shù)據(jù)管理系統(tǒng),其特征在于,還包括:
隊列監(jiān)視模塊,用于對所述預設隊列進行實時監(jiān)視;
容量預警模塊,用于當所述隊列監(jiān)視模塊監(jiān)視到當前所述預設隊列中的剩余緩存空間容量小于預設容量閾值,則發(fā)出相應的容量預警信息。
10.根據(jù)權(quán)利要求6至9任一項所述的適用于多生產(chǎn)者多消費者模式的數(shù)據(jù)管理系統(tǒng),其特征在于,所述預設隊列為環(huán)形緩沖區(qū)。