位置: 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用户手册)

  • 影响微博营销传播效果的因素(微博营销对企业品牌传播的影响)

    影响微博营销传播效果的因素(微博营销对企业品牌传播的影响)

  • 笔记本黑屏怎么办(笔记本黑屏)(笔记本黑屏怎么唤醒)

    笔记本黑屏怎么办(笔记本黑屏)(笔记本黑屏怎么唤醒)

  • 知道微信号怎么加好友吗(知道微信号怎么加抖音号)

    知道微信号怎么加好友吗(知道微信号怎么加抖音号)

  • 苹果13多少克(苹果14多少克)

    苹果13多少克(苹果14多少克)

  • 闲鱼怎么设置不退不换(闲鱼怎么设置不在线隐身)

    闲鱼怎么设置不退不换(闲鱼怎么设置不在线隐身)

  • window1032位和64位的区别

    window1032位和64位的区别

  • 微信设置仅聊天和不让他看有什么区别(微信设置仅聊天意味着什么)

    微信设置仅聊天和不让他看有什么区别(微信设置仅聊天意味着什么)

  • 拍抖音要垂直什么意思(拍抖音垂直什么意思)

    拍抖音要垂直什么意思(拍抖音垂直什么意思)

  • oppo手机突然自己放歌(oppo手机突然自动关机)

    oppo手机突然自己放歌(oppo手机突然自动关机)

  • 淘宝展现量什么意思(淘宝里展现量指什么)

    淘宝展现量什么意思(淘宝里展现量指什么)

  • 引导模式怎么强制关机(引导模式怎么强制退出)

    引导模式怎么强制关机(引导模式怎么强制退出)

  • 上传到qq空间的照片占手机内存吗(上传到qq空间的照片像素会降低吗)

    上传到qq空间的照片占手机内存吗(上传到qq空间的照片像素会降低吗)

  • excel数据整理的方法(excel怎么整理数据表)

    excel数据整理的方法(excel怎么整理数据表)

  • 苹果手机怎么设置指纹解锁(苹果手机怎么设置手写)

    苹果手机怎么设置指纹解锁(苹果手机怎么设置手写)

  • 手机节拍器怎么使用(手机节拍器怎么调十六分音符)

    手机节拍器怎么使用(手机节拍器怎么调十六分音符)

  • 华为手机照片怎么导出来(华为手机照片怎么设置私密)

    华为手机照片怎么导出来(华为手机照片怎么设置私密)

  • hd高清通话有什么用(hd高清通话有什么缺点)

    hd高清通话有什么用(hd高清通话有什么缺点)

  • 华为畅享10plus是不是快充(华为畅享10plus是什么时候出的)

    华为畅享10plus是不是快充(华为畅享10plus是什么时候出的)

  • 拼多多买家怎么删除评价(拼多多买家怎么查看自己的信誉度)

    拼多多买家怎么删除评价(拼多多买家怎么查看自己的信誉度)

  • 拼多多账户在哪里(拼多多账户在哪里退出)

    拼多多账户在哪里(拼多多账户在哪里退出)

  • 封装基板与pcb区别(封装用基板)

    封装基板与pcb区别(封装用基板)

  • 华为为什么没有网易云(华为为什么没有原神)

    华为为什么没有网易云(华为为什么没有原神)

  • 拼多多拼团成功后可以取消订单吗(拼多多拼团成功退款会影响其他人吗)

    拼多多拼团成功后可以取消订单吗(拼多多拼团成功退款会影响其他人吗)

  • 小米6如何隐藏软件(小米6如何隐藏应用)

    小米6如何隐藏软件(小米6如何隐藏应用)

  • 微博发图怎么不带水印(微博发图怎么不变成live)

    微博发图怎么不带水印(微博发图怎么不变成live)

  • win10护眼模式在哪里? win10护眼模式的使用方法(win10护眼模式在哪)

    win10护眼模式在哪里? win10护眼模式的使用方法(win10护眼模式在哪)

  • s24evmon.exe - s24evmon是什么进程 有什么用

    s24evmon.exe - s24evmon是什么进程 有什么用

  • Spring的配置文件(spring的配置文件中的内容)

    Spring的配置文件(spring的配置文件中的内容)

  • 劳务派遣差额发票0税率情况
  • 盖了骑缝章的合同怎么写
  • 城镇土地使用税的征税范围
  • 制造费用结转到辅助生产成本
  • 递延所得税资产和负债怎么计算
  • 支付员工费用报销账务处理
  • 汇算清缴的利润表本期数与本年数
  • 可供出售金融资产和长期股权投资
  • 盈亏平衡点产量越高,项目风险越大
  • 研发投入大
  • 代扣公积金会计怎么做账
  • 自查补缴的企业怎么处理
  • 水利建设专项收入怎么报税
  • 境外支付佣金如何开发票
  • 增值税申报表第31栏为什么有数字
  • 存货相关的会计科目
  • 一般纳税人税控盘维护费会计分录
  • 银行定期存款的利息是每个月给你吗
  • 单位存款账户按用途分为
  • 厂房出租开发票选择什么税收分类编码
  • 哪些项目可以在城镇开发边界外
  • 电脑玩游戏卡怎么弄
  • 设计费和勘察费的会计科目
  • 电子商务如何做账
  • 珠宝加工税率是多少
  • 约定抵销与法定抵销的区别
  • windows7中
  • 当月收到服务成本票下个月才开出发票
  • PHP:mb_send_mail()的用法_mbstring函数
  • 典当行交易是给现金吗
  • 因质量问题收取停工通知
  • load与initialize
  • yii框架的优点及原理
  • 企业免租申请
  • 激光器原理及应用
  • 保税进料加工企业
  • 增值税发票退回重开期限
  • 进口消费税如何计税
  • 以前年度漏记收入
  • 发票纳税识别号和名称打印出来不齐怎么回事
  • 个体户营业额一般填多少
  • 一般纳税人不抵扣怎样交税
  • 股东买房能在银行贷款吗
  • mysql创建和删除数据库
  • MySQL ERROR 2013 (HY000)错误解决方法
  • 会计处理方法是什么意思
  • 增值税留抵退税的账务处理
  • 增加固定资产原值后折旧
  • 固定资产溢余
  • 2018年小规模纳税人
  • 职工福利费计提标准是多少
  • 出库单上面的单位写谁的
  • 健身中心开的服装店
  • 出租办公楼收入属于收入吗
  • 工业企业发生的各项费用都应计入产品成本对不对
  • 建账有哪些步骤,每个步骤有哪些注意事项
  • windows 08
  • torch.cuda.set_device
  • ubuntu 怎么用
  • mac怎么设置屏幕显示时间
  • linux批量杀进程 awk
  • win8如何打开任务管理器
  • 微软股票
  • android ui绘制
  • option标签的作用
  • java 迭代器 remove
  • 基于jquery实现小说
  • android recycleview 刷新
  • shell调用java方法
  • mac如何配置pycharm
  • unity网格地形
  • 网页过关类游戏
  • javascript的对象有哪些
  • jquery实现ajax加载超时提示的方法
  • android下拉刷新上拉加载
  • 备份系统apk
  • 城镇土地使用税按月还是按年交
  • 陕西税务纳税服务平台
  • 车辆购置税退税需要什么资料
  • 黑龙江省国税局举报电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设