欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python线程池的实现实例

程序员文章站 2022-06-13 19:17:54
直接上代码:复制代码 代码如下:# -*- coding: utf-8 -*- import queue import threadingimport urllibimpo...

直接上代码:

复制代码 代码如下:

# -*- 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()