【发布时间】:2010-10-23 15:16:14
【问题描述】:
如果我有一个使用线程和队列的程序,我如何获得异常以停止执行?这是一个示例程序,不能用 ctrl-c 停止(基本上是从 python 文档中提取的)。
from threading import Thread
from Queue import Queue
from time import sleep
def do_work(item):
sleep(0.5)
print "working" , item
def worker():
while True:
item = q.get()
do_work(item)
q.task_done()
q = Queue()
num_worker_threads = 10
for i in range(num_worker_threads):
t = Thread(target=worker)
# t.setDaemon(True)
t.start()
for item in range(1, 10000):
q.put(item)
q.join() # block until all tasks are done
【问题讨论】:
标签: python multithreading exception