微慑信息网

python 多线程遍历目录测试 の 一

初学多线程:


 

直接贴处下对比

(1)常规情况:

import threading
import os
import  time

def check_files(path):
    pathlist = os.listdir(path)
    for mpath in pathlist:
        mpath = path+'/'+mpath
        if os.path.isdir(mpath):
            check_files(mpath)
        else:
            reslist.append(mpath)

def main():
    global reslist
    reslist = []
    path='D:\Program Files'
    start =time.time()
    check_files(path)
    end =time.time()
    print ('cost time :',end-start)
    print ('files num is :',len(reslist))


if __name__ == '__main__':
    main()

(2)多线程:

import threading
import os
import  time

def check_files(path):
    pathlist = os.listdir(path)
    for mpath in pathlist:
        mpath = path+'/'+mpath
        if os.path.isdir(mpath):
            check_files(mpath)
        else:
            reslist.append(mpath)

def main():
    global reslist
    reslist = []
    path='D:\Program Files'
    start =time.time()
    threats =[]
    t = threading.Thread(target=check_files,args=(path,))
    threats.append(t)
    for thread in threats:
        thread.start()
    for thread in threats:
        thread.join()
    end = time.time()
    print ('cost time :',end-start)
    print ('files num is :',len(reslist))


if __name__ == '__main__':
    main()

执行结果没什么区别,因为该处仅仅是列出了文件名,但是如果有对文件的操作,区别有就有了:

如:增加了对图片文件是否包含二维码的判断:

在不使用多线程的情况下,总是1615个文件,204个目录的环境下,执行时间9.29秒

在使用多线程的情况下,总是1615个文件,204个目录的环境下,执行时间4.15秒

赞(0) 打赏
转载请附本站链接,未经允许不得转载,,谢谢:微慑信息网-VulSee.com » python 多线程遍历目录测试 の 一

评论 抢沙发

微慑信息网 专注工匠精神

微慑信息网-VulSee.com-关注前沿安全态势,聚合网络安全漏洞信息,分享安全文档案例

访问我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册