[發(fā)明專利]一種目錄文件的快速檢索方法在審
| 申請?zhí)枺?/td> | 201611262370.8 | 申請日: | 2016-12-30 |
| 公開(公告)號: | CN106874370A | 公開(公告)日: | 2017-06-20 |
| 發(fā)明(設(shè)計)人: | 涂高元;張祺文;邱志斌;郭永興;陸云燕;張艷蓉 | 申請(專利權(quán))人: | 廈門天銳科技股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 361000 福建省廈門市廈*** | 國省代碼: | 福建;35 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 目錄 文件 快速 檢索 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于信息檢索技術(shù)領(lǐng)域,特別涉及一種基于多線程技術(shù)的目錄文件檢索方法。
背景技術(shù)
目前,隨著電子技術(shù)的飛速發(fā)展,辦公往往不可能脫離電腦,我們通常需要保留重要的文件,書寫記錄顯然是耗時耗力的,電腦便成為了我們?nèi)粘I钪写鎯ξ募闹匾萜鳌.斀瘢S著文件規(guī)模的壯大,人們已經(jīng)不再滿足于將文件存儲在本地電腦上(受存儲空間的限制),于是,各類網(wǎng)絡(luò)文檔管理系統(tǒng)層出不窮。為了提高企業(yè)(單位)員工的工作效率和信息安全,大部分企業(yè)(單位)都對員工的辦公文件進行一定的管控,不可避免地會需要將本地終端文件上傳/備份到服務(wù)器,這就意味著需要有一個存放大量文件的文件倉庫。
于是,為了滿足從一個復(fù)雜目錄的文件倉庫中檢索或遍歷文件的方便快速,我們通常想盡辦法去提高文件的檢索效率,簡而言之是為了能夠?qū)τ谠谝粋€無序的文件倉庫中的操作盡可能地減少所花費的時間。通常,當我們試圖檢索/遍歷一個目錄的時候,最開始且最低效的做法是定義一個通過目錄參數(shù)查找下級子目錄和文件的遞歸方法,這種方法無法充分地利用系統(tǒng)資源且無法從細節(jié)處提升一定的效率,之后,有人發(fā)明了多線程的使用,意味著電腦程序可以同步進行多件事,這大大提高了程序的工作效率以及實現(xiàn)方法的開拓。我們不禁想到多線程技術(shù)可以使文件檢索/遍歷的效率大幅提升,但是如何最大化地利用多線程的優(yōu)勢,最大地提升文件系統(tǒng)的檢索/遍歷效率,已經(jīng)成為當前重要的研究方向。
對于一個多層級的復(fù)雜目錄結(jié)構(gòu),現(xiàn)有方案是預(yù)先創(chuàng)建好固定數(shù)目的線程池,掃描頂層目錄的下一級目錄后,將掃描到的子目錄作為子任務(wù)投遞到線程池中某個空閑的線程中,進行任務(wù)目錄(上級掃描到的子目錄)的文件掃描及再次掃描到子目錄進行重復(fù)投遞處理。
現(xiàn)有方案具有以下不足:
(1)此方法線程不能及時結(jié)束并回收內(nèi)存資源。
(2)此方法線程數(shù)量固定,不能很好地處理目錄層次極其復(fù)雜的情況,例如當有10個線程要處理11個任務(wù)目錄時,就會出現(xiàn)一個任務(wù)需要等待。
基于以上分析,現(xiàn)有的檢索方法效率低,有待改進,本案由此產(chǎn)生。
發(fā)明內(nèi)容
本發(fā)明的目的,在于提供一種目錄文件的快速檢索方法,其可充分利用系統(tǒng)的資源與回收,縮短檢索/遍歷消耗時間。
為了達成上述目的,本發(fā)明的解決方案是:
一種目錄文件的快速檢索方法,設(shè)置消息接收模塊和線程處理模塊,所述檢索方法包括如下步驟:
步驟1,主進程對根目錄地址的下一級進行掃描,查找到目標文件則結(jié)束并返回,當發(fā)現(xiàn)子目錄則向消息接收模塊發(fā)送特定消息,并將子目錄地址傳遞給消息接收模塊;
步驟2,消息接收模塊接收到特定消息后,創(chuàng)建新線程,并將接收到的子目錄地址參數(shù)傳送至線程處理模塊;
步驟3,線程處理模塊對子目錄的下一級進行掃描,若查找到目標文件則將目標文件地址返回給主進程,并結(jié)束線程檢索方法流程,并釋放線程資源;
步驟4,重復(fù)步驟2-3,直至查找到目標文件。
上述步驟1的詳細內(nèi)容是,主進程以根目錄地址為參數(shù)對目標目錄地址的下一級進行掃描,若查找到目標文件則將目標文件地址作為方法函數(shù)返回值返回,結(jié)束檢索流程;若沒有找到目標文件,則將每次查找到的子目錄Ai循環(huán)向消息接收模塊發(fā)送特定消息,同時將查找到的子目錄Ai地址參數(shù)傳送至消息接收模塊,其中,i=1,2,…,n,且A1-An為目錄標識,n為根目錄下一級的目錄節(jié)點數(shù)量。
上述步驟2中,消息接收模塊接收到特定消息后,從緩存獲取一塊內(nèi)存塊創(chuàng)建新線程并得到相應(yīng)的線程號。
上述步驟3中,若線程處理模塊查找到目標文件,則將目標文件地址存入公共變量返回給主進程。
上述步驟3中,若線程處理模塊未查找到目標文件,則將每次查找到的子目錄Bj循環(huán)向消息接收模塊發(fā)送特定消息,同時將查找到的子目錄Bj的地址參數(shù)傳送至消息接收模塊,其中,j=1,2,…,m,且B1-Bm為目錄標識,m為該子目錄下一級的目錄節(jié)點數(shù)量。
上述步驟4中,消息接收模塊從緩存獲取一塊內(nèi)存塊創(chuàng)建新線程并得到相應(yīng)的線程號,將接收到的子目錄Bj地址參數(shù)傳送至線程處理模塊,重復(fù)步驟2-3,直至查找到目標文件,結(jié)束檢索流程并返回。
上述步驟3中,當子目錄的下一級掃描完畢后,結(jié)束掃描,釋放線程資源。
采用上述方案后,本發(fā)明基于多線程技術(shù)而產(chǎn)生,具有如下特點:
(1)本發(fā)明具有簡易性,不需要對任務(wù)隊列或棧進行管理;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廈門天銳科技股份有限公司,未經(jīng)廈門天銳科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611262370.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





