如何在此代码中使用多线程并限制线程;例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方法与线程对象