位置: IT常识 - 正文

使用多线程让Python应用飞起来(多线程并发python)

编辑:rootadmin

推荐整理分享使用多线程让Python应用飞起来(多线程并发python),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:多线程并发python,python多线程能并行吗,多线程调用,多线程应用场景python,python多线程能提高效率吗,多线程应用场景python,多线程调用,多线程编程python,内容如对您有帮助,希望把文章链接给更多的朋友!

很多时候,我们最终在Python中编写代码来执行远程请求或读取多个文件或对某些数据进行处理。在很多这种情况下,我看到程序员使用一个简单的程序员for loop,需要永远完成执行。例如:

importrequestsfromtimeimporttimeurl_list=["https://via.placeholder.com/400","https://via.placeholder.com/410","https://via.placeholder.com/420","https://via.placeholder.com/430","https://via.placeholder.com/440","https://via.placeholder.com/450","https://via.placeholder.com/460","https://via.placeholder.com/470","https://via.placeholder.com/480","https://via.placeholder.com/490","https://via.placeholder.com/500","https://via.placeholder.com/510","https://via.placeholder.com/520","https://via.placeholder.com/530",]defdownload_file(url):html=requests.get(url,stream=True)returnhtml.status_codestart=time()forurlinurl_list:print(download_file(url))print(f'Timetaken:{time()-start}')

Output:

<--truncated-->Timetaken:4.128157138824463使用多线程让Python应用飞起来(多线程并发python)

这是一个理智的示例,代码将打开每个URL,等待它加载,打印其状态代码,然后转到下一个URL。这种代码非常适合多线程。

现代系统可以运行大量线程,这意味着您可以使用非常低的开销一次完成多个任务。为什么我们不尝试使用它来使上述代码更快地处理这些URL?

我们将利用ThreadPoolExecutor从concurrent.futures库。它非常易于使用。让我向您展示一些代码,然后解释它是如何工作的。

importrequestsfromconcurrent.futuresimportThreadPoolExecutor,as_completedfromtimeimporttimeurl_list=["https://via.placeholder.com/400","https://via.placeholder.com/410","https://via.placeholder.com/420","https://via.placeholder.com/430","https://via.placeholder.com/440","https://via.placeholder.com/450","https://via.placeholder.com/460","https://via.placeholder.com/470","https://via.placeholder.com/480","https://via.placeholder.com/490","https://via.placeholder.com/500","https://via.placeholder.com/510","https://via.placeholder.com/520","https://via.placeholder.com/530",]defdownload_file(url):html=requests.get(url,stream=True)returnhtml.status_codestart=time()processes=[]withThreadPoolExecutor(max_workers=10)asexecutor:forurlinurl_list:processes.append(executor.submit(download_file,url))fortaskinas_completed(processes):print(task.result())print(f'Timetaken:{time()-start}')

Output:

<--truncated-->Timetaken:0.4583399295806885

我们的代码加速了近9倍!我们甚至没有做任何超级参与。如果有更多网址,性能优势会更高。

那么发生了什么?当我们调用时,executor.submit 我们正在向线程池添加新任务。我们将该任务存储在进程列表中。稍后我们迭代过程并打印出结果。

该as_completed方法在完成后立即从进程列表中生成项(任务)。任务可以进入完成状态有两个原因。它已完成执行或已取消。我们也可以传入一个timeout参数as_completed,如果任务花费的时间超过了那个时间段,那么as_completed就会产生这个任务。

本文链接地址:https://www.jiuchutong.com/zhishi/304519.html 转载请保留说明!

上一篇:Discuz主题浏览量实现原理和不更新的解决方案(discuz 首页设置)

下一篇:phpcms会员登录失败(phpcms v9用户手册)

  • 美图秀秀能去水印吗(美图秀秀去水印不伤原图)

    美图秀秀能去水印吗(美图秀秀去水印不伤原图)

  • 魅族18有几种颜色(魅族18哪个颜色最好看)

    魅族18有几种颜色(魅族18哪个颜色最好看)

  • 安卓typec是通用的吗

    安卓typec是通用的吗

  • 怎样让平板电脑充电更快(怎样让平板电脑恢复出厂设置)

    怎样让平板电脑充电更快(怎样让平板电脑恢复出厂设置)

  • 字体加边框怎么设置(字体边框怎么加)

    字体加边框怎么设置(字体边框怎么加)

  • 苹果钉钉怎么显示在其他应用上(苹果钉钉怎么显示黑屏)

    苹果钉钉怎么显示在其他应用上(苹果钉钉怎么显示黑屏)

  • 处理器和芯片的区别(处理器和芯片的关系)

    处理器和芯片的区别(处理器和芯片的关系)

  • 清理请勿关机要多久(清理 请勿关机)

    清理请勿关机要多久(清理 请勿关机)

  • 怎么样打开视频(多功能视频音响怎么样打开视频)

    怎么样打开视频(多功能视频音响怎么样打开视频)

  • word页面大小怎么调(word页面大小怎么设置在哪里)

    word页面大小怎么调(word页面大小怎么设置在哪里)

  • 华为p10nfc在哪里打开(华为p10nfc在哪个位置)

    华为p10nfc在哪里打开(华为p10nfc在哪个位置)

  • 手机迅雷屏幕设置在哪(手机迅雷播放怎么变成竖屏)

    手机迅雷屏幕设置在哪(手机迅雷播放怎么变成竖屏)

  • 苹果11前置摄像头有美颜吗(苹果11前置摄像头多少钱)

    苹果11前置摄像头有美颜吗(苹果11前置摄像头多少钱)

  • mate30全系支持5g吗(华为mate30支不支持5g网络)

    mate30全系支持5g吗(华为mate30支不支持5g网络)

  • 拼多多店铺三级惩罚如何解除(拼多多店铺三级限制中怎么解开)

    拼多多店铺三级惩罚如何解除(拼多多店铺三级限制中怎么解开)

  • vivox21支持红外吗(vivox21支持红外线遥控器吗?)

    vivox21支持红外吗(vivox21支持红外线遥控器吗?)

  • 华为mate20怎么升级9.1(华为mate20怎么升级不了鸿蒙系统)

    华为mate20怎么升级9.1(华为mate20怎么升级不了鸿蒙系统)

  • 企业微信有监控功能吗(企业微信有监控个人微信的聊天记录吗)

    企业微信有监控功能吗(企业微信有监控个人微信的聊天记录吗)

  • vivoy93的返回键在哪里(vivoy93s返回键怎么调成按键)

    vivoy93的返回键在哪里(vivoy93s返回键怎么调成按键)

  • qq上怎么看加了多少天(qq怎么看加了多长时间好友了)

    qq上怎么看加了多少天(qq怎么看加了多长时间好友了)

  • 苹果实况壁纸没声音解决办法(iphone实况壁纸没有实况)

    苹果实况壁纸没声音解决办法(iphone实况壁纸没有实况)

  • 关闭自动重建图片缓存(关闭自动重新启动会怎样)

    关闭自动重建图片缓存(关闭自动重新启动会怎样)

  • 自然语言处理(NLP)与知识图谱(KG)的发展史(自然语言处理算法)

    自然语言处理(NLP)与知识图谱(KG)的发展史(自然语言处理算法)

  • 进项税额属于什么账户
  • 复合计征消费税例题
  • 淘宝网店女装
  • 分包抵扣
  • 企业的内部银行
  • a企业给关联公司借款怎么做账
  • 股东向企业借款属于关联交易吗
  • 契税和印花税的计税依据是一致吗
  • 客户能把货款打给个人吗
  • 超过标准的职工教育经费
  • 固定资产转为投资性房地产折旧
  • 中国银行结算包括哪些内容?怎么做会计分录?
  • 发票销项负数的会计分录怎么做?
  • 税负几个点
  • 金税四期具体内容
  • 总资产增长率的含义
  • 开通税种需要带发票吗
  • 500万以下固定资产最新政策
  • 企业会计制度怎么备案
  • 对员工的罚款怎么做账
  • 外购商誉是资产吗
  • 上期认证的发票本期能抵扣吗
  • 出售子公司全部股权的股权账务处理
  • 附加税零申报怎么申报
  • 小规模企业核定征收
  • 接受国外企业捐款的条件
  • 技术服务费进项发票怎么做分录
  • 小微企业 记账
  • 以报销形式发放的工资 劳动仲裁
  • 公司微信转账要上税么
  • 留底的进项税额记哪儿?
  • chat gpt介绍开头
  • wordpress文章编辑
  • 车船税不计提怎么做分录
  • php php.ini
  • php强制下载文件在哪
  • 所得税的季末从哪里算
  • 备抵法会计处理
  • 房产税计入管理费用还是营业税金及附加
  • 个人发票抬头怎么弄
  • mysql的字符串
  • 二季度盈利三季度亏损
  • sql中循环语句怎么写
  • 免征增值税政策的政策有哪些?
  • 幼儿园的经费支出主要包括哪几个方面
  • 会计报表作用 镜
  • 免交的增值税要交所得税吗
  • 银行承兑到期后未兑付
  • 进项发票认证后暂不抵扣
  • 商贸企业增值税税负率低于1%则存在涉税问题
  • 企业设备融资是什么意思?
  • 资金周转率计算公式
  • 收到红字发票如何入账
  • 固定资产的入账价值包括增值税吗?
  • 可供分配利润的计算公式
  • 居间活动费用由谁负担
  • 什么资产减值可以转回
  • 分公司人数要求
  • 购进货物取得
  • 原始凭证分割单怎么填写
  • mysql导入数据语句
  • centos6.5中文
  • 老毛桃winpe系统对注册表信息进行备份的方法
  • win8屏幕显示时间
  • xp系统怎么创建本地连接2
  • 启动mac问号文件夹闪烁怎么办
  • 如何安装win95系统
  • win7在开始菜单右击
  • win7桌面文件夹路径
  • [置顶] 此外,车牌号:458143(懂得都懂[吃瓜])
  • unity做cg
  • android 自定义dialog
  • cocos2dx 3.2 Http网络连接,curl 库的介绍
  • qt::windowtype
  • jsp生成uuid
  • javascript总结笔记
  • jquery 选择器 空格
  • javascript要怎么学
  • 区域化管理的利与弊
  • 问一下医院
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设