本發(fā)明屬于存儲(chǔ)系統(tǒng)技術(shù)領(lǐng)域,特別是涉及一種多線程系統(tǒng)的性能提升方法和裝置。
背景技術(shù):
隨著數(shù)據(jù)量逐漸增大,人們對(duì)存儲(chǔ)系統(tǒng)性能的要求越來(lái)越高。現(xiàn)階段的處理器單個(gè)核性能越來(lái)越難以提升,因此,多核成了處理器發(fā)展的一個(gè)方向。一個(gè)cpu中存在多個(gè)核,所以一個(gè)系統(tǒng)中同時(shí)運(yùn)行多個(gè)線程能夠提高系統(tǒng)的并發(fā)性,從而顯著提升存儲(chǔ)系統(tǒng)的性能。
然而。限制多線程系統(tǒng)的性能的一個(gè)重要因素是鎖,對(duì)于一些共享資源的使用,導(dǎo)致線程直接相互牽制,需要用到鎖。當(dāng)多個(gè)線程在等待同一個(gè)鎖時(shí),相當(dāng)于是單個(gè)線程的效率,極大的限制了多線程系統(tǒng)能夠得到的性能提升,所以如何解決鎖的問(wèn)題是多線程系統(tǒng)中的一個(gè)重要問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問(wèn)題,本發(fā)明提供了一種多線程系統(tǒng)的性能提升方法和裝置,能夠減少因?yàn)殒i等待導(dǎo)致的性能下降問(wèn)題,提高存儲(chǔ)系統(tǒng)中多線程并發(fā)性,提升系統(tǒng)性能。
本發(fā)明提供的一種多線程系統(tǒng)的性能提升方法,包括:
將與當(dāng)前系統(tǒng)的處理器核數(shù)量相等的線程一一對(duì)應(yīng)的綁定至處理器核上;
創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列;
將每個(gè)所述線程關(guān)聯(lián)至一組所述任務(wù)隊(duì)列;
當(dāng)所述線程向所述任務(wù)隊(duì)列添加任務(wù)時(shí),確定需要添加到的任務(wù)隊(duì)列號(hào)m和所述線程本身對(duì)應(yīng)的隊(duì)列號(hào)n,將所述任務(wù)添加至任務(wù)隊(duì)列[m][n];
當(dāng)所述線程執(zhí)行任務(wù)時(shí),只從與所述線程綁定的任務(wù)隊(duì)列中取出任務(wù)并執(zhí)行。
優(yōu)選的,在上述多線程系統(tǒng)的性能提升方法中,還包括:
將所述任務(wù)拆分成多個(gè)小塊任務(wù),并利用所述線程每次取出固定個(gè)數(shù)的小塊任務(wù)進(jìn)行處理,且處理周期不超過(guò)預(yù)設(shè)閾值。
優(yōu)選的,在上述多線程系統(tǒng)的性能提升方法中,所述創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列為:
創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列,所述任務(wù)隊(duì)列包括固定長(zhǎng)度的環(huán)形隊(duì)列和非固定長(zhǎng)度的溢出隊(duì)列。
優(yōu)選的,在上述多線程系統(tǒng)的性能提升方法中,所述固定個(gè)數(shù)的范圍為40個(gè)至60個(gè)。
優(yōu)選的,在上述多線程系統(tǒng)的性能提升方法中,所述預(yù)設(shè)閾值的范圍為600毫秒至1000毫秒。
本發(fā)明提供的一種多線程系統(tǒng)的性能提升裝置,包括:
綁定單元,用于將與當(dāng)前系統(tǒng)的處理器核數(shù)量相等的線程一一對(duì)應(yīng)的綁定至處理器核上;
創(chuàng)建單元,用于創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列;
關(guān)聯(lián)單元,用于將每個(gè)所述線程關(guān)聯(lián)至一組所述任務(wù)隊(duì)列;
添加單元,用于當(dāng)所述線程向所述任務(wù)隊(duì)列添加任務(wù)時(shí),確定需要添加到的任務(wù)隊(duì)列號(hào)m和所述線程本身對(duì)應(yīng)的隊(duì)列號(hào)n,將所述任務(wù)添加至任務(wù)隊(duì)列[m][n];
執(zhí)行單元,用于當(dāng)所述線程執(zhí)行任務(wù)時(shí),只從與所述線程綁定的任務(wù)隊(duì)列中取出任務(wù)并執(zhí)行。
優(yōu)選的,在上述多線程系統(tǒng)的性能提升裝置中,還包括:
任務(wù)拆分單元,用于將所述任務(wù)拆分成多個(gè)小塊任務(wù),并利用所述線程每次取出固定個(gè)數(shù)的小塊任務(wù)進(jìn)行處理,且處理周期不超過(guò)預(yù)設(shè)閾值。
優(yōu)選的,在上述多線程系統(tǒng)的性能提升裝置中,所述創(chuàng)建單元具體用于創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列,所述任務(wù)隊(duì)列包括固定長(zhǎng)度的環(huán)形隊(duì)列和非固定長(zhǎng)度的溢出隊(duì)列。
通過(guò)上述描述可知,本發(fā)明提供的上述多線程系統(tǒng)的性能提升方法和裝置,由于該方法包括將與當(dāng)前系統(tǒng)的處理器核數(shù)量相等的線程一一對(duì)應(yīng)的綁定至處理器核上;創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列;將每個(gè)所述線程關(guān)聯(lián)至一組所述任務(wù)隊(duì)列;當(dāng)所述線程向所述任務(wù)隊(duì)列添加任務(wù)時(shí),確定需要添加到的任務(wù)隊(duì)列號(hào)m和所述線程本身對(duì)應(yīng)的隊(duì)列號(hào)n,將所述任務(wù)添加至任務(wù)隊(duì)列[m][n];當(dāng)所述線程執(zhí)行任務(wù)時(shí),只從與所述線程綁定的任務(wù)隊(duì)列中取出任務(wù)并執(zhí)行,因此能夠減少因?yàn)殒i等待導(dǎo)致的性能下降問(wèn)題,提高存儲(chǔ)系統(tǒng)中多線程并發(fā)性,提升系統(tǒng)性能。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請(qǐng)實(shí)施例提供的第一種多線程系統(tǒng)的性能提升方法的示意圖;
圖2為任務(wù)隊(duì)列的結(jié)構(gòu)示意圖;
圖3為本申請(qǐng)實(shí)施例提供的第一種多線程系統(tǒng)的性能提升裝置的示意圖。
具體實(shí)施方式
本發(fā)明的核心思想在于提供一種多線程系統(tǒng)的性能提升方法和裝置,能夠減少因?yàn)殒i等待導(dǎo)致的性能下降問(wèn)題,提高存儲(chǔ)系統(tǒng)中多線程并發(fā)性,提升系統(tǒng)性能。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本申請(qǐng)實(shí)施例提供的第一種多線程系統(tǒng)的性能提升方法如圖1所示,圖1為本申請(qǐng)實(shí)施例提供的第一種多線程系統(tǒng)的性能提升方法的示意圖,該方法包括如下步驟:
s1:將與當(dāng)前系統(tǒng)的處理器核數(shù)量相等的線程一一對(duì)應(yīng)的綁定至處理器核上;
具體的,在系統(tǒng)啟動(dòng)的時(shí)候,首先計(jì)算當(dāng)前系統(tǒng)處理器有多少個(gè)核,然后我們啟動(dòng)跟核數(shù)相同個(gè)數(shù)的線程,并且將每個(gè)線程綁定到固定的處理器核上,以減少線程在不同核上切換導(dǎo)致的性能開(kāi)銷。
s2:創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列;
任意一個(gè)線程運(yùn)行過(guò)程中都應(yīng)該允許往任意隊(duì)列中添加新任務(wù),按常規(guī)做法,線程操作同一個(gè)隊(duì)列過(guò)程中需要加鎖,而本實(shí)施例中,為了避免鎖的使用,將每一個(gè)線程關(guān)聯(lián)到一組任務(wù)隊(duì)列。
s3:將每個(gè)所述線程關(guān)聯(lián)至一組所述任務(wù)隊(duì)列;
需要說(shuō)明的是,這個(gè)綁定關(guān)系可以改變,但一個(gè)時(shí)間點(diǎn),每個(gè)線程關(guān)聯(lián)到一組確定的隊(duì)列,不同線程關(guān)聯(lián)的隊(duì)列不同,這樣同一個(gè)時(shí)間多個(gè)線程不會(huì)從同一個(gè)隊(duì)列取任務(wù),可以避免取任務(wù)加鎖的問(wèn)題。
s4:當(dāng)所述線程向所述任務(wù)隊(duì)列添加任務(wù)時(shí),確定需要添加到的任務(wù)隊(duì)列號(hào)m和所述線程本身對(duì)應(yīng)的隊(duì)列號(hào)n,將所述任務(wù)添加至任務(wù)隊(duì)列[m][n];
具體的,當(dāng)某個(gè)線程需要往任務(wù)隊(duì)列添加任務(wù)t時(shí),先確定需要添加任務(wù)到隊(duì)列m,即給隊(duì)列queues[m][*]對(duì)應(yīng)的線程安排任務(wù),然后取到當(dāng)前線程自己對(duì)應(yīng)的隊(duì)列號(hào)n,則該線程將任務(wù)t添加到queues[m][n]。這樣任一線程往任一隊(duì)列添加任務(wù)時(shí),不會(huì)發(fā)生沖突,添加任務(wù)時(shí)不需要加鎖。
s5:當(dāng)所述線程執(zhí)行任務(wù)時(shí),只從與所述線程綁定的任務(wù)隊(duì)列中取出任務(wù)并執(zhí)行。
具體的,每個(gè)線程啟動(dòng)后會(huì)執(zhí)行一個(gè)無(wú)限循環(huán),一直嘗試從它對(duì)應(yīng)的任務(wù)隊(duì)列中取任務(wù)。每個(gè)任務(wù)是一個(gè)回調(diào)函數(shù),取到任務(wù)后,該線程將會(huì)調(diào)用這個(gè)函數(shù)。系統(tǒng)中可以分配max_q*max_q個(gè)這樣的隊(duì)列,taskqqueues[max_q][max_q],每個(gè)線程對(duì)應(yīng)max_q個(gè)隊(duì)列,線程i固定從queues[i][*]中取任務(wù),*表示[0,max_q),這樣每個(gè)線程在取任務(wù)的時(shí)候不會(huì)相互干擾,可以避免加鎖。
通過(guò)上述描述可知,本申請(qǐng)實(shí)施例提供的第一種多線程系統(tǒng)的性能提升方法,由于包括將與當(dāng)前系統(tǒng)的處理器核數(shù)量相等的線程一一對(duì)應(yīng)的綁定至處理器核上;創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列;將每個(gè)所述線程關(guān)聯(lián)至一組所述任務(wù)隊(duì)列;當(dāng)所述線程向所述任務(wù)隊(duì)列添加任務(wù)時(shí),確定需要添加到的任務(wù)隊(duì)列號(hào)m和所述線程本身對(duì)應(yīng)的隊(duì)列號(hào)n,將所述任務(wù)添加至任務(wù)隊(duì)列[m][n];當(dāng)所述線程執(zhí)行任務(wù)時(shí),只從與所述線程綁定的任務(wù)隊(duì)列中取出任務(wù)并執(zhí)行,因此能夠減少因?yàn)殒i等待導(dǎo)致的性能下降問(wèn)題,提高存儲(chǔ)系統(tǒng)中多線程并發(fā)性,提升系統(tǒng)性能。
本申請(qǐng)實(shí)施例提供的第二種多線程系統(tǒng)的性能提升方法,是在上述第一種多線程系統(tǒng)的性能提升方法的基礎(chǔ)上,還包括如下技術(shù)特征:
還包括:
將所述任務(wù)拆分成多個(gè)小塊任務(wù),并利用所述線程每次取出固定個(gè)數(shù)的小塊任務(wù)進(jìn)行處理,且處理周期不超過(guò)預(yù)設(shè)閾值。
需要說(shuō)明的是,為了避免某個(gè)線程長(zhǎng)時(shí)間被某個(gè)任務(wù)占用,導(dǎo)致其他任務(wù)得不到處理,導(dǎo)致io超時(shí),這里可以將每個(gè)io處理拆分成小塊的任務(wù),每個(gè)任務(wù)時(shí)間盡量短,每個(gè)線程每次取固定個(gè)數(shù)的任務(wù)處理,處理完算完成一個(gè)周期,一個(gè)周期的時(shí)間不能超過(guò)某個(gè)固定的閾值,這樣能保證每個(gè)線程都忙碌,且每個(gè)任務(wù)都能快速得到執(zhí)行,避免有的io長(zhǎng)時(shí)間得不到處理,導(dǎo)致超時(shí)問(wèn)題。一個(gè)例子如下:一個(gè)io處理需要2s,但這2s可能不是連續(xù)干完的,中間可能會(huì)等待一些其他條件,處理器是空閑的,這樣可以把這個(gè)io拆成若干個(gè)小的任務(wù),比如這個(gè)任務(wù)原來(lái)是:干活0.1s,等待0.7s,干活0.2s,等待0.7s干活0.3s,我們可以把它拆成3段,干活0.1s,處理別的io,再干活0.2s,再去處理別的io,再干活0.3s,完成。
本申請(qǐng)實(shí)施例提供的第三種多線程系統(tǒng)的性能提升方法,是在上述第一種或第二種多線程系統(tǒng)的性能提升方法的基礎(chǔ)上,還包括如下技術(shù)特征:
所述創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列為:
創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列,所述任務(wù)隊(duì)列包括固定長(zhǎng)度的環(huán)形隊(duì)列和非固定長(zhǎng)度的溢出隊(duì)列。
具體的,參考圖2,圖2為任務(wù)隊(duì)列的結(jié)構(gòu)示意圖,環(huán)形隊(duì)列采用固定長(zhǎng)度,填滿后會(huì)將多出的任務(wù)鏈接到溢出隊(duì)列,線程工作過(guò)程中會(huì)不斷的從對(duì)應(yīng)的隊(duì)列中取任務(wù),處理后會(huì)將溢出隊(duì)列中的任務(wù)補(bǔ)充到環(huán)形隊(duì)列中去,這樣既可以得到線性表遍歷快速的好處,又彌補(bǔ)了其容量固定的缺陷。
本申請(qǐng)實(shí)施例提供的第四種多線程系統(tǒng)的性能提升方法,是在上述第二種多線程系統(tǒng)的性能提升方法的基礎(chǔ)上,還包括如下技術(shù)特征:
所述固定個(gè)數(shù)的范圍為40個(gè)至60個(gè)。
本申請(qǐng)實(shí)施例提供的第五種多線程系統(tǒng)的性能提升方法,是在上述第四種多線程系統(tǒng)的性能提升方法的基礎(chǔ)上,還包括如下技術(shù)特征:
所述預(yù)設(shè)閾值的范圍為600毫秒至1000毫秒。
更進(jìn)一步的,目前的優(yōu)選設(shè)置方案是50個(gè)任務(wù)執(zhí)行總時(shí)間不超過(guò)800毫秒。采用拆分任務(wù)的方法,將任務(wù)盡可能拆分成小塊,能夠避免長(zhǎng)時(shí)間占用某個(gè)線程導(dǎo)致其他任務(wù)得不到調(diào)度而導(dǎo)致io超時(shí)的問(wèn)題,從而提高io的響應(yīng)速度,而且可以相互檢查超時(shí),及時(shí)發(fā)現(xiàn)某個(gè)線程被長(zhǎng)時(shí)間占用的情況,并及時(shí)做出反應(yīng),方便查找定位問(wèn)題。
本申請(qǐng)實(shí)施例提供的第一種多線程系統(tǒng)的性能提升裝置如圖3所示,圖3為本申請(qǐng)實(shí)施例提供的第一種多線程系統(tǒng)的性能提升裝置的示意圖,該裝置包括:
綁定單元301,用于將與當(dāng)前系統(tǒng)的處理器核數(shù)量相等的線程一一對(duì)應(yīng)的綁定至處理器核上,具體的,在系統(tǒng)啟動(dòng)的時(shí)候,用于計(jì)算當(dāng)前系統(tǒng)處理器有多少個(gè)核,然后啟動(dòng)跟核數(shù)相同個(gè)數(shù)的線程,并且將每個(gè)線程綁定到固定的處理器核上,以減少線程在不同核上切換導(dǎo)致的性能開(kāi)銷;
創(chuàng)建單元302,用于創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列,任意一個(gè)線程運(yùn)行過(guò)程中都應(yīng)該允許往任意隊(duì)列中添加新任務(wù),按常規(guī)做法,線程操作同一個(gè)隊(duì)列過(guò)程中需要加鎖,而本實(shí)施例中,為了避免鎖的使用,將每一個(gè)線程關(guān)聯(lián)到一組任務(wù)隊(duì)列;
關(guān)聯(lián)單元303,用于將每個(gè)所述線程關(guān)聯(lián)至一組所述任務(wù)隊(duì)列,需要說(shuō)明的是,這個(gè)綁定關(guān)系可以改變,但一個(gè)時(shí)間點(diǎn),每個(gè)線程關(guān)聯(lián)到一組確定的隊(duì)列,不同線程關(guān)聯(lián)的隊(duì)列不同,這樣同一個(gè)時(shí)間多個(gè)線程不會(huì)從同一個(gè)隊(duì)列取任務(wù),可以避免取任務(wù)加鎖的問(wèn)題;
添加單元304,用于當(dāng)所述線程向所述任務(wù)隊(duì)列添加任務(wù)時(shí),確定需要添加到的任務(wù)隊(duì)列號(hào)m和所述線程本身對(duì)應(yīng)的隊(duì)列號(hào)n,將所述任務(wù)添加至任務(wù)隊(duì)列[m][n],具體的,當(dāng)某個(gè)線程需要往任務(wù)隊(duì)列添加任務(wù)t時(shí),先確定需要添加任務(wù)到隊(duì)列m,即給隊(duì)列queues[m][*]對(duì)應(yīng)的線程安排任務(wù),然后取到當(dāng)前線程自己對(duì)應(yīng)的隊(duì)列號(hào)n,則該線程將任務(wù)t添加到queues[m][n]。這樣任一線程往任一隊(duì)列添加任務(wù)時(shí),不會(huì)發(fā)生沖突,添加任務(wù)時(shí)不需要加鎖;
執(zhí)行單元305,用于當(dāng)所述線程執(zhí)行任務(wù)時(shí),只從與所述線程綁定的任務(wù)隊(duì)列中取出任務(wù)并執(zhí)行,具體的,每個(gè)線程啟動(dòng)后會(huì)執(zhí)行一個(gè)無(wú)限循環(huán),一直嘗試從它對(duì)應(yīng)的任務(wù)隊(duì)列中取任務(wù)。每個(gè)任務(wù)是一個(gè)回調(diào)函數(shù),取到任務(wù)后,該線程將會(huì)調(diào)用這個(gè)函數(shù)。系統(tǒng)中可以分配max_q*max_q個(gè)這樣的隊(duì)列,taskqqueues[max_q][max_q],每個(gè)線程對(duì)應(yīng)max_q個(gè)隊(duì)列,線程i固定從queues[i][*]中取任務(wù),*表示[0,max_q),這樣每個(gè)線程在取任務(wù)的時(shí)候不會(huì)相互干擾,可以避免加鎖。
本申請(qǐng)實(shí)施例提供的第二種多線程系統(tǒng)的性能提升裝置,時(shí)在上述第一種多線程系統(tǒng)的性能提升裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
還包括:
任務(wù)拆分單元,用于將所述任務(wù)拆分成多個(gè)小塊任務(wù),并利用所述線程每次取出固定個(gè)數(shù)的小塊任務(wù)進(jìn)行處理,且處理周期不超過(guò)預(yù)設(shè)閾值。
需要說(shuō)明的是,為了避免某個(gè)線程長(zhǎng)時(shí)間被某個(gè)任務(wù)占用,導(dǎo)致其他任務(wù)得不到處理,導(dǎo)致io超時(shí),這里可以將每個(gè)io處理拆分成小塊的任務(wù),每個(gè)任務(wù)時(shí)間盡量短,每個(gè)線程每次取固定個(gè)數(shù)的任務(wù)處理,處理完算完成一個(gè)周期,一個(gè)周期的時(shí)間不能超過(guò)某個(gè)固定的閾值,這樣能保證每個(gè)線程都忙碌,且每個(gè)任務(wù)都能快速得到執(zhí)行,避免有的io長(zhǎng)時(shí)間得不到處理,導(dǎo)致超時(shí)問(wèn)題。一個(gè)例子如下:一個(gè)io處理需要2s,但這2s可能不是連續(xù)干完的,中間可能會(huì)等待一些其他條件,處理器是空閑的,這樣可以把這個(gè)io拆成若干個(gè)小的任務(wù),比如這個(gè)任務(wù)原來(lái)是:干活0.1s,等待0.7s,干活0.2s,等待0.7s干活0.3s,我們可以把它拆成3段,干活0.1s,處理別的io,再干活0.2s,再去處理別的io,再干活0.3s,完成。
本申請(qǐng)實(shí)施例提供的第三種多線程系統(tǒng)的性能提升裝置,時(shí)在上述第一種或第二種多線程系統(tǒng)的性能提升裝置的基礎(chǔ)上,還包括如下技術(shù)特征:
所述創(chuàng)建單元具體用于創(chuàng)建與所述線程的數(shù)量相等的任務(wù)隊(duì)列,所述任務(wù)隊(duì)列包括固定長(zhǎng)度的環(huán)形隊(duì)列和非固定長(zhǎng)度的溢出隊(duì)列。
環(huán)形隊(duì)列采用固定長(zhǎng)度,填滿后會(huì)將多出的任務(wù)鏈接到溢出隊(duì)列,線程工作過(guò)程中會(huì)不斷的從對(duì)應(yīng)的隊(duì)列中取任務(wù),處理后會(huì)將溢出隊(duì)列中的任務(wù)補(bǔ)充到環(huán)形隊(duì)列中去,這樣既可以得到線性表遍歷快速的好處,又彌補(bǔ)了其容量固定的缺陷。
對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。