pyhont 线程池我认为就是从Queue中获得需要执行的任务,然后开一个线程从Queue中获取任务,当执行完后向Queue前一个任务发出消息。
#-*-coding:utf-8 -*-
import threading,time,Queue,os
class threadPool(threading.Thread):
def __init__(self,workQueue,ID):
self.workQueue=workQueue
self.ID=ID
def process(self,elemt):
print "{0} - task:---{1}".format(self.ID,elemt) #一种标准输出格式
def run(self):
while True:
try:
elemt=self.workQueue.get()
self.process(elemt)
finally:
self.workQueue.task_done() #通知queue前一个task已经完成
def main(filelist):
print (filelist)
workQueue=Queue.Queue()#创建一个先进先出的队列
for i in range(int(raw_input("请输入工作线程的数量"))):
thread=threadPool(workQueue,i) #创建线程
thread.daemon=True #守护进程
thread.start()
for elemt in filelist:
workQueue.put(elemt)
workQueue.join()#线程同步
if __name__=="__main__":
print "aa"
main(os.listdir("C:\Users\lenovo\Desktop"))