zoukankan      html  css  js  c++  java
  • 多线程,进程实现并发请求


    '''方式一:线程池的方式'''
    # from concurrent.futures import ThreadPoolExecutor
    # import requests
    # import time
    #
    #
    # def task(url):
    # response=requests.get(url)
    # print(url,response)
    #
    #
    # pool=ThreadPoolExecutor(7)
    #
    #
    # url_list=[
    # 'http://www.baidu.com',
    # 'http://www.baidu.com',
    # 'http://www.baidu.com',
    # 'http://www.baidu.com',
    # ]
    #
    #
    # for url in url_list:
    # pool.submit(task,url)
    # pool.shutdown(wait=True)





    '''编写方式二'''

    from concurrent.futures import ThreadPoolExecutor,ProcessPoolExecutor##前面是多线程,后面是多进程
    import requests
    import time


    '''(url,response)当返回一个参数的时候,就会被当做一个整体进行返回,就是一个参数'''
    def task(url):
    '''下载页面'''
    response=requests.get(url)
    # print(url,response)
    # return (url,response)##在这里进行返回值回去,当有返回值的时候,在下面的return_obj里面可以被接收到,就可以打印出来
    return response##在这里进行返回值回去,当有返回值的时候,在下面的return_obj里面可以被接收到,就可以打印出来



    '''arg是放列表和字典的 '''
    def done(return_obj,*args,**kwargs):
    response=return_obj.result()
    # print(response)
    print(response.status_code)###返回状态码
    # print(response.content)
    # print(args)
    # print(kwargs)


    pool=ThreadPoolExecutor(7)


    url_list=[
    'http://www.baidu.com',
    'http://www.baidu.com',
    'http://www.baidu.com',
    'http://www.baidu.com',
    ]


    for url in url_list:
    v=pool.submit(task,url)
    v.add_done_callback(done)##当执行完上面的程序的时候,就会自动执行回调函数
    pool.shutdown(wait=True)
  • 相关阅读:
    运用vue-awesome-swiper实现一个slide居中一个缩小显示
    IntersectionObserver
    leetcode 加一
    Cuda总结
    webrtc 视频数据 采集 发送 接收 显示
    webrtc ice代码流程走读
    webrtc sdp 组建 流程以及 sdp协议解析
    webrtc 视频参数配置
    webrtc 线程整理
    webrtc turn协议
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/10033095.html
Copyright © 2011-2022 走看看