concurrent.futures - 并行任务

前言

源码:
	Lib/concurrent/futures/thread.py
	Lib/concurrent/futures/process.py
concurrent.futures:
	异步执行可以由 ThreadPoolExecutor 或 ProcessPoolExecutor 来实现
	两者都是实现抽像类 Executor 定义的接口

ThreadPoolExecutor

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File    : $file_name.py
# @Author  : BenLam
# @Link    : https://www.cnblogs.com/BenLam/

import requests
from concurrent.futures import ThreadPoolExecutor

lis = [
    "https://www.baidu.com",
    "https://www.jd.com",
    "https://www.cnblogs.com",
]

def response(url):
    _res = requests.get(url)
    print(_res.url)
    # return _res

print("--- 主线程 ---")
executor = ThreadPoolExecutor(max_workers=3)
for url in lis:
    future = executor.submit(response, url)
    restful = future.running()
    print(restful)
print("--- 主线程 | 结束 ---")

"""
打印:
	--- 主线程 ---
		True
		True
		True
	--- 主线程 | 结束 ---
		https://www.jd.com/
		https://www.cnblogs.com/
		https://www.baidu.com/
	[Finished in 1.9s]
"""

猜你喜欢

转载自www.cnblogs.com/BenLam/p/12721420.html