首页 > 编程知识 正文

python 线程池使用详解,python线程池怎么做

时间:2023-05-05 16:40:13 阅读:233851 作者:2564

官网文档:https://docs.python.org/zh-cn/3/library/concurrent.futures.html

Python有GIL,故多线程最好只用于io密集型程序,比如需要网络下载很多个文件,下面截取部分代码来展示如何使用:

from concurrent.futures import ThreadPoolExecutor, as_completed # 导入需要的包threadPool = ThreadPoolExecutor(max_workers=140) # 线程池的hdsdqz大小,最多同时执行多少个任务,submit的任务数超过这个数字后后续任务会自行等待进入线程池all_task = [threadPool.submit(self.download_01, url, path, delay * 1.5) for delay, url in enumerate(urls)] # 使用线程池ThreadPoolExecutor的submit方法发起任务,列表生成式里面装了所有任务的返回句柄。self.download_01是我的函数名称,url, path, delay * 1.5 全是我的self.download_01函数的参数。for task in as_completed(all_task): # as_completed 可以判断列表里的线程是否完成 data = task.result() print("任务{} down load success".format(data)) # 打印结果threadPool.shutdown(wait=True) # 释放线程池资源

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。