python线程池的实现实例

yipeiwu_com6年前Python基础

直接上代码:

复制代码 代码如下:

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

相关文章

对python中两种列表元素去重函数性能的比较方法

对python中两种列表元素去重函数性能的比较方法

测试函数: 第一种:list的set函数 第二种:{}.fromkeys().keys() 测试代码: #!/usr/bin/python #-*- coding:utf-8 -*-...

如何利用Fabric自动化你的任务

首先让我们首先看一个例子。我们知道在*NIX下面,uname命令是查看系统的发行版。 可以写这样一个Fabric脚本: from fabric.api import run def...

win10下安装Anaconda的教程(python环境+jupyter_notebook)

win10下安装Anaconda的教程(python环境+jupyter_notebook)

前言: 什么是anaconda?? Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 [1] 因为包含了大量的科学包...

Python获取一个用户名的组ID过程解析

getpwname只能得到gid一个username。 import pwd myGroupId = pwd.getpwnam(username).pw_gid getgroups...

python3 tkinter实现添加图片和文本

python3 tkinter实现添加图片和文本

本文在前面文章基础上介绍tkinter添加图片和文本,在这之前,我们需要安装一个图片库,叫Pillow,这个需要下载exe文件,根据下面图片下载和安装。 下载完后直接双击安装exe,默...