python之线程池

ThreadPoolExecutor(线程池)

线程池一些知识点:

  1.  python中ThreadPoolExecutor(线程池)是concurrent.futures模块下的,主线程中可以获取某一个线程执行的状态或者某一个任务执行的状态及返回值。
  2. 通过submit返回的是一个future对象,它是一个未来可期的对象,通过它可以获悉线程的状态
  3. 通过submit提交函数到进程池中,submit(函数名,参数)
  4. 通过wait()判断线程执行的状态:wait(fs, timeout=None, return_when=ALL_COMPLETED),wait接受3个参数,fs表示执行的task序列;timeout表示等待的最长时间,超过这个时间即使线程未执行完成也将返回;return_when表示wait返回结果的条件,默认为ALL_COMPLETED全部执行完成再返回

from concurrent.futures import ThreadPoolExecutor
import requests

pool = ThreadPoolExecutor(10)

def task(url):
    response = requests.get(url)
    print(url,response)



url_list = (
    "https://www.bing.com",
    "https://www.shihu.com",
    "https://www.sina.com",
    "https://www.baidu.com",
    "https://www.cnblogs.com",
    "https://music.163.com/#"
)

for url in url_list:
    pool.submit(task,url)

pool.shutdown(wait=True)

result

https://www.bing.com <Response [200]>
https://www.baidu.com <Response [200]>
https://www.cnblogs.com <Response [200]>
https://music.163.com/# <Response [200]>
https://www.sina.com <Response [200]>

猜你喜欢

转载自www.cnblogs.com/houyu/p/10764748.html