1.线程池-submit
python3.2版本之后才有的;
from concurrent.futures import ThreadPoolExecutor
def job(num):
# 需要执行的任务
print("这是一个%s任务" %(num))
return "执行结果:%s" %(num)
if __name__ == '__main__':
# 1. 实例化线城池对象,线城池里面包含5个线程执行任务;
pool = ThreadPoolExecutor(max_workers=5)
futures = []
for i in range(1000):
# 2.往线程池里面扔需要执行的任务, 返回的是一个对象(_base.Future()),jop函数名,i 函数job里的参数
f1 = pool.submit(job, i)
futures.append(f1)
# 3.判断第一个任务是否执行结束;
futures[0].done()
# 获取任务的执行结果;
print(futures[0].result())
线程池里面的线程越多越好吗?不是的
我们以之前爬虫ip城市的例子为例
import time
def timeit(f):
def wrapper(*args, **kwargs