У меня есть script, который создает кучу потоков, запускает программу для использования потоков для запуска задач из очереди и возвращает что-то из каждого потока. Я хочу подсчитать, сколько из них успешно возвращено, поэтому я устанавливаю переменную "success = 0" и увеличиваю ее каждый раз, когда очередь сообщает о завершении задачи.
Тем не менее, я получаю "UnboundLocalError: локальная переменная" успешно ", на которую ссылаются перед назначением"
Что происходит?
Вот пример кода:
successful = 0
q = Queue(200)
for i in range(100):
t=Thread(target=foo)
t.daemon=True
t.start()
def foo():
while True:
task=q.get()
#do some work
print task
successful+=1 # triggers an error
q.task_done()
for i in range(100):
q.put("Foo")
q.join()
print successful