【发布时间】:2012-07-31 23:01:51
【问题描述】:
我有一个创建一堆线程的脚本,运行一个程序来使用线程从队列中运行任务,并从每个线程返回一些东西。我想计算其中有多少成功返回,所以我设置了一个变量“successful=0”,并在队列每次报告任务成功完成时递增它。
但是,我收到“UnboundLocalError: local variable 'successful' referenced before assignment”
发生了什么事?
下面是一些示例代码:
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
【问题讨论】:
标签: python multithreading scope queue