开启线程池

详解:
https://www.jianshu.com/p/b9b3d66aa0be
https://yq.aliyun.com/articles/694452

另外,由于线程池实现了上下文管理协议(Context Manage Protocol),因此,程序可以使用 with 语句来管理线程池,这样即可避免手动开启关闭线程池,利用线程池的好处: https://www.cnblogs.com/hoojjack/p/10846010.html

一.
from concurrent.futures import ThreadPoolExecutor

def task(arg):
print(arg)
return arg

pool = ThreadPoolExecutor(max_workers=20) #创建了一个线程池,线程池里面最多有20个线程

for i in range(100):
#pool.submit(task,i) 去线程池中申请一个线程,让线程执行task函数,i 是传给task函数的参数
pool.submit(task,i) #i是传入函数的参数,如果task函数有多个参数,直接在后面传就行了

二.
from concurrent.futures import ThreadPoolExecutor
import time

def get_html(times):
time.sleep(times)
print("get page {}s finished".format(times))
return times
print(110)
executor = ThreadPoolExecutor(max_workers=2)

task1 = executor.submit(get_html, (3))
task2 = executor.submit(get_html, (2))
print(111)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容