Если у меня есть программа, которая использует потоки и очередь, как мне получить исключения, чтобы остановить выполнение? Вот примерная программа, которую невозможно остановить с помощью 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