Приложение для проверки файлов Python с многопоточностью - PullRequest
0 голосов
/ 01 августа 2011

Как использовать многопоточность в этом коде и ограничить поток; Пример 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('./')

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 01 августа 2011

Создайте пул (список) объектов Thread размером n, используйте is_alive , чтобы проверить, завершен ли какой-либо из них, и тогда вы сможете назначить в нем новое сканирование каталогов.Также вы должны создать подкласс класса Thread и определить метод run для адаптации к вашей проблеме, подробности о том, как это сделать, приведены в документации.

0 голосов
/ 01 августа 2011

сначала импортируйте Threading, затем Threading. init () какую часть вы хотите добавить в имя потока, это run () (это переопределенный метод базового класса Thread) или Thread (target = "ваш потокfunction ", args = []) вызвать метод запуска с объектом потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...