[发明专利]终止多线程文件遍历的方法、装置、实现方法、实现装置在审
| 申请号: | 202111155676.4 | 申请日: | 2021-09-29 |
| 公开(公告)号: | CN114003356A | 公开(公告)日: | 2022-02-01 |
| 发明(设计)人: | 沈忠立 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F16/16 |
| 代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 李舜江 |
| 地址: | 215100 江苏省苏州*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 终止 多线程 文件 遍历 方法 装置 实现 | ||
本发明提供一种终止多线程文件遍历的方法、装置、实现方法、实现装置,所述方法包括如下步骤:文件遍历的每一次循环起点,检查终止标志位;当终止标志位为假时,获取待遍历路径的下一个文件的句柄;成功获得句柄后,即将此句柄作为参数派发予线程池,进入新线程执行文件处理业务;当终止标志位为真时,设置等待线程执行结束。将耗时少的遍历循环业务留在主线程,而将细分出的耗时多但逻辑简单的部分析至线程池中执行。从而在确保逻辑足够简单的同时,实现了多线程的高性能处理方式,进而使得业务停止成为了可能。主线程执行遍历、线程池执行耗时业务的分配模式,以及使用全局的终止标志位进行停止判定的方式。
技术领域
本发明涉及线程执行控制技术领域,具体涉及终止多线程文件遍历的方法、装置、实现方法、实现装置。
背景技术
在安全软件的日常业务实现中,对硬盘中的全部或部分文件进行遍历,是必要且常见的操作。多数情况下,这些文件遍历操作可能伴随着耗时冗长的操作,例如执行全盘文件的完整性检测时,对所关心目录中的每一个文件,都需要执行计算哈希的操作,这势必会导致冗长的操作耗时。
对此,最为直观解决方案是,采用多线程的方式执行遍历以提高效率。实际情况下,在系统性能足够的情况下,多线程确实能够有效缩短操作耗时。然而,由于对多线程操作的范围与粒度把握的问题,传统的多线程遍历往往难以做到按需停止。
发明内容
由于对多线程操作的范围与粒度把握的问题,传统的多线程遍历往往难以做到按需停止,本发明针对此问题,提供一种终止多线程文件遍历的方法、装置、实现方法、实现装置。
本发明的技术方案是:
第一方面,本发明技术方案提供一种终止多线程文件遍历的方法,包括如下步骤:
文件遍历的每一次循环起点,检查终止标志位;
当终止标志位为假时,获取待遍历路径的下一个文件的句柄;
成功获得句柄后,即将此句柄作为参数派发予线程池,进入新线程执行耗时的文件处理业务;
当终止标志位为真时,设置等待线程执行结束。
将耗时少的遍历循环业务留在主线程,而将细分出的耗时多但逻辑简单的部分析至线程池中执行。从而在确保逻辑足够简单的同时,实现了多线程的高性能处理方式,进而使得业务停止成为了可能。
进一步的,执行耗时的文件处理业务的步骤包括:
对终止标志位进行检查;
若终止标志位为真,则设置退出文件处理业务的循环;
若终止标志位为假,设置等待线程池中的所有线程执行完毕。
主线程执行遍历、线程池执行耗时业务的分配模式,以及使用全局的终止标志位进行停止判定的方式。
进一步的,文件遍历的每一次循环起点,检查终止标志位的步骤之前包括:
设置一个全局可见的终止标志位,默认值为假;当外来信号要求停止遍历时,将此终止标志位的值置为真。
第二方面,本发明技术发方案还提供一种终止多线程文件遍历的装置,包括主处理单元和文件业务处理单元,所述的主处理单元包括主处理标志位检查模块、文件句柄获取模块、触发模块、第一设置模块;
主处理标志位检查模块,用于文件遍历的每一次循环起点,检查终止标志位;
文件句柄获取模块,用于当终止标志位为假时,获取待遍历路径的下一个文件的句柄;
触发模块,用于成功获得句柄后,即将此句柄作为参数派发予线程池,进入文件业务处理单元触发新线程执行耗时的文件处理业务;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111155676.4/2.html,转载请声明来源钻瓜专利网。





