• python_线程池


    线程池,比如我们有个方法要多线程运行1000次,我们不能声明1000个线程,这时候我们可以通过线程池设定50个线程,那么运行的时候就会自动分配给者1000次,也就是每个线程20次

    如下例子就是线程池例子:

    import requests,threading
    import faker
    import threadpool #线程池模块
    
    f=faker.Faker(locale="zh-CN")
    def down_load_file(url):
        r=requests.get(url) #get请求
        m=f.name() #随机生成文件名字
        with open('./pic/%s.jpg'%m,'wb') as fw: #图片二进制写入文件,保存为jpg格式
            fw.write(r.content)
    
    url_list=[
                'http://www.nnzhp.cn/wp-content/uploads/2019/02/jiami.jpeg',
                'http://www.nnzhp.cn/wp-content/uploads/2019/03/js.png',
                'http://www.nnzhp.cn/wp-content/uploads/2018/08/ab389f04cb5b57344ef9655428bccaec.png'
            ]
    
    pool=threadpool.ThreadPool(3)  #创建一个线程池,指定线程池最多有多少个线程
    
    reqs=threadpool.makeRequests(down_load_file,url_list) #调用生成启动线程用的参数
    
    [pool.putRequest(req) for req in reqs] #循环启动线程
    
    print("当前的线程数",threading.activeCount()) #当前线程数,统计的线程数包括主线程
    
    pool.wait() #等待子线程
    
    print("测试结束") 
  • 相关阅读:
    CodeForces 825G"Tree Queries"(选根建树)
    技术日记
    [express.js 使用笔记] ajax询问数据,却显示在浏览器上,该怎么办?
    node.js 基础和文件操作 笔记
    JSON 笔记
    CSS 学习笔记(一)选择器
    cf1321E
    [学习笔记] 后缀数组
    Python 编程练习
    《明朝那些事儿》 读书笔记
  • 原文地址:https://www.cnblogs.com/xiaokuangnvhai/p/11279226.html
Copyright © 2020-2023  润新知