Я пытаюсь запустить некоторые многопоточного кода в Python, какPython: Многопоточность не работает
from Queue import Queue
q = Queue()
doclist=["adsas","asdasd","oipoipo"]
for i,doc in enumerate(doclist):
q.put(doc)
q.join()
threadRun.run(50, qWorker.worker(q))
первый, я создать очередь и добавить некоторые вещи к нему. Затем я вызываю метод, который создает и запускает потоки. Вот threadRun.run
метод
import threading
def run(numThreads,targetMethod):
print "Running threads"
for i in range(numThreads):
t = threading.Thread(target=targetMethod)
t.daemon=True
t.start()
и вот qWorker.worker
метод
def worker(qItem):
print "Q Worker"
while True:
doc = qItem.get()
try:
print doc
qItem.task_done()
except:
print "Error"
Когда я выполнить приведенный выше код, ничего не происходит. Правильно ли мой подход? что мне не хватает?
Ничего не происходит? Он не печатает «Запуск потоков»? –
является 'qWorker.worker (q)' вызываемым объектом? Я думаю, перед вызовом 'run' python, пытающегося вычислить значение' qWorker.worker (q) ' для передачи параметров в поток использовать параметр' args' 'threading.Thread()' class threading.Thread (group = None, target = None, name = None, args =(), kwargs = {}, *, daemon = None) –
Является ли ваш код блоком '__main__'? О чем вы? –