Python文件扫描应用程序与多线程



如何在此代码中使用多线程并限制线程;例4 .

import os
import glob
from pymongo import Connection
from gridfs import GridFS
db = Connection().microfilm
fs = GridFS(db)
def scandirs(path):
    for currentFile in glob.glob( os.path.join(path, '*') ):
        if os.path.isdir(currentFile):
            print 'Entering directory: ' + currentFile
            scandirs(currentFile)
        base, ext = os.path.splitext(currentFile)
        if ( ext == '.tif'):
                print "Processing file: " + currentFile
                fName = os.path.basename(currentFile)
                with open(currentFile) as gfsFile:
                        oid = fs.put(gfsFile, content_type="image/tiff", filename=fName)
scandirs('./')

创建一个大小为n的线程对象池(列表),使用is_alive检查是否有线程对象已完成,然后可以在其中分配一个新的目录扫描。此外,您应该子类化Thread类并定义run方法以适应您的问题,关于如何做到这一点的详细信息请参见文档。

首先导入Threading,然后再导入Threading.init()您想要在线程名中放入的部分是run()(这是基类thread的覆盖方法)还是thread (target="您的线程函数",args=[])调用start方法与线程对象

最新更新