#!/usr/bin/python
# -*- coding: utf-8 -*-
import threading
import Queue
import time
def worker():
while True:
item = q.get()
time.sleep(60)
print item
q.task_done()
num_worker_threads = 20
q = Queue.Queue()
for i in range(num_worker_threads):
t = threading.Thread(target=worker)
t.daemon = True
t.start()
def source():
return range(100)
for item in source():
q.put(item)
q.join() # block until all tasks are done
Как исправить эту программу, чтобы Ctrl-C срабатывал, и прибивал нити (потоки)?
Вот эти слайды (стр. 22 - 25) меня опечалили: http://www.dabeaz.com/python/GIL.pdf
Неужели, никак не сделать?