[发明专利]多线程文件遍历技术有效

专利信息
申请号: 200910020370.0 申请日: 2009-04-23
公开(公告)号: CN101526948A 公开(公告)日: 2009-09-09
发明(设计)人: 刘江宁;黄三伟;刘宗福;刘春;石磊;刘毅枫 申请(专利权)人: 山东中创软件商用中间件股份有限公司
主分类号: G06F17/30 分类号: G06F17/30;G06F9/38
代理公司: 济南舜源专利事务所有限公司 代理人: 苗 峻
地址: 250014山东*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 多线程 文件 遍历 技术
【说明书】:

技术领域

发明涉及一种多线程文件遍历技术,即InforGuard扫描模块采用的遍历文件系统机制。

背景技术

InforGuard在应用过程中,需要尽可能实时的发现被监控文件系统的文件变化。遍历扫描是解决该问题的传统手段,特别是在特定的操作系统和应用场景下,遍历技术有其不可替代的意义。

目前,在此领域采用的方案为:

以单线程工作的方式,基于深度优先或广度优先的算法遍历文件系统,大多采用递归的方式实现。

该方法的特点是实现简单,易于控制,稳定性和可靠性较高。但是遍历的效率是该项技术使用的主要限制和瓶颈。遍历一次文件系统的时间与文件系统的规模直接相关,因此,当文件系统超过一定规模时,遍历的性能将急剧降低,直接影响该机制的可用性。

发明内容

本发明的目的就是针对上述的不足,提供了一种基于多线程文件遍历机制,能够在保证可靠性的前提下,有效提高遍历的性能,从而扩展遍历机制的可用范围。

本发明提供的多线程文件遍历技术,采用可配置的多线程模式和机遇队列的协同遍历方法,具有很好的效果。

1.可配置的多线程模式

以多线程并行工作的方式代替传统上单一线程的工作模式,并可通过配置文件调整最大的工作线程数限制。允许使用者根据实际文件系统的规模及结构,调优参数,达到实际环境的最佳性能。

2.基于队列的协同遍历方法

多个线程通过队列交换消息,实现协同遍历。所有线程的执行逻辑相同,包括三步

a)获取遍历任务:从队列中摘出一个任务,任务包含一个目录的全路径信息。

b)执行遍历任务:针对当前任务中指定的目录,遍历找出该目录的所有直接子目录和子文件,记录这些信息。

c)产生新的遍历任务:上一步识别出来的每个子目录都作为一个独立的任务,将这些任务投递到队列中。

启动各工作线程,各线程在队列上等待任务;触发遍历的起始任务包含顶级目录的全路径信息,起始任务投递到队列之后,各线程按照上述逻辑,不断获取并处理任务,执行当前目录遍历,同时根据处理结果产生新的任务;如此往复,达到多线程协同遍历的效果。判断本次遍历结束的标志是:所有线程都处于等待状态,并且队列中没有任务。

队列机制是解决多线程并行协同工作的可靠和高效的手段。

本发明具体是这样实现的,包括两部分,第一部分启动遍历,是通过如下步骤实现的:

首先启动工作线程组,通过配置参数聚顶启动工作线程的数目,可以按照被遍历对象的规模大小及运行服务器的处理能力调整,达到最佳的并发处理效果。线程组的各个线程启动后,处于空闲等待任务状态。

其次投递起始任务,文件系统的顶级目录封装为任务,投递到队列中,作为遍历的触发起始点,工作线程组的某个线程将得到该任务并进行处理,然后产生后续任务。

最后等待所有线程处于空闲状态且队列为空,判断遍历结束的标志是,所有的线程都处于空闲状态,并且队列中没有等待处理的任务。此时,可以通知遍历的启动者,报告本次遍历结束。

第二部分进行工作线程处理,是这样实现的:

首先从队列中取出任务,线程启动后,或每次处理任务完成后,都在队列上等待新任务,有任务时,取出任务进行处理,无任务时,空闲等待。

其次执行当前目录遍历,任务内容是一个目录的全路径信息,是线程本次处理的当前目录,遍历出当前目录的所有直接子目录和直接子文件(即只遍历出当前目录的下面一级),记录遍历信息或进行相关的业务处理。

最后根据遍历结果产生子任务并投递到队列,本次遍历出来的所有直接子目录封装为新的任务,投递到队列中(作为后续遍历过程的起始任务,因而各个线程可以循环往复按照本流程的步骤遍历整个文件系统),本线程投递任务完成后,再次回到本流程的第一步等待处理下一个任务。

由此可以看出,在启动遍历的第一步启动线程组后,第一部分的其他步骤和第二部分是并行的,即主线程与各子线程是并行运行的。

该处理过程利用队列机制实现多线程的协同,克服传统单线程遍历效率低下的弱点,显著提高了遍历机制的处理性能和应用范围。

本发明提供的多线程文件遍历技术具有如下优点:

1.显著提高遍历的性能

通过多线程工作的机制,可充分利用服务器的CPU等资源,协同的进行文件系统遍历扫描;相对传统单线程的串行工作方式,性能显著提高。

2.扩展遍历机制的应用范围

配置并发工作线程的数目,可以有效支持规模较大的文件系统,扩展了遍历机制的应用范围。

附图说明

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东中创软件商用中间件股份有限公司,未经山东中创软件商用中间件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910020370.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top