python线程池的实现实例

905次阅读  |  发布于5年以前

直接上代码:

复制代码 代码如下:

-- coding: utf-8 --

import Queue
import threading
import urllib
import urllib2
import os

def down(url,n):
print 'item '+str(n)+' start '
filename=urllib2.unquote(url).decode('utf8').split('/')[-1]
urllib.urlretrieve(url, filename)
print 'item '+str(n)+' finish '

def worker():
while True:
i = q.get()
url=i[0]
n=i[1]
down(url,n)
q.task_done()

if name=="main":

num_worker_threads=100

f=open('url.txt')  
l=f.readlines()  
q = Queue.Queue()  
for i in range(num_worker_threads):  
    t = threading.Thread(target=worker)  
    t.daemon = True  
    t.start()

for i in range(0,len(l)):  
    q.put((l[i],i))

q.join()  

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8