看看下面代码python线程不会退出,越来越多,
python 3的代码,queue是小写的,哈哈
from queue import Queue
import time
import threading
class Test():
def __init__(self):
self.q = Queue()
self.THREAD_NUM = 5
def impl(self, obj):
print(obj)
time.sleep(1)
def working(self):
while True:
obj = self.q.get()
self.impl(obj)
self.q.task_done()
def addTask(self, pending):
start = time.time()
for i in range(self.THREAD_NUM):
t = threading.Thread(target=self.working)
t.setDaemon(True)
t.start()
for obj in pending:
self.q.put(obj)
self.q.join()
print ('Elapsed Time=%d, Active Thread=%d' %(int(time.time() - start), threading.activeCount()))
if __name__ == "__main__":
for i in range(0, 50, 3):
pending = []
pending.append(i)
pending.append(i+1)
pending.append(i+2)
Test().addTask(pending)
i+=1