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

  • 怎么隐藏微信置顶聊天(新版微信怎么隐藏置顶)

    怎么隐藏微信置顶聊天(新版微信怎么隐藏置顶)

  • 手电筒亮度在哪里调(手电筒亮度在哪里调苹果)

    手电筒亮度在哪里调(手电筒亮度在哪里调苹果)

  • 抖音怎么合拍(抖音怎么合拍对唱歌曲)

    抖音怎么合拍(抖音怎么合拍对唱歌曲)

  • 华为云服务和百度云盘的区别(华为云和百度云的区别)

    华为云服务和百度云盘的区别(华为云和百度云的区别)

  • 快手置顶是什么意思(快手里的顶置是什么)

    快手置顶是什么意思(快手里的顶置是什么)

  • 为什么快手视频录制失败(为什么快手视频播放量突然变少?)

    为什么快手视频录制失败(为什么快手视频播放量突然变少?)

  • 美团拉新用户有奖励吗(美团拉新规则)

    美团拉新用户有奖励吗(美团拉新规则)

  • 电脑软件打开立马闪退(电脑软件打开应用程序没反应)

    电脑软件打开立马闪退(电脑软件打开应用程序没反应)

  • ipad微信更新不了新版本怎么办(iPad微信更新不了)

    ipad微信更新不了新版本怎么办(iPad微信更新不了)

  • pca是啥

    pca是啥

  • 系统检测交易异常暂不允许在此群发红包(系统检测交易异常原因)

    系统检测交易异常暂不允许在此群发红包(系统检测交易异常原因)

  • amd显卡驱动安装不了(amd显卡驱动安装失败192)

    amd显卡驱动安装不了(amd显卡驱动安装失败192)

  • 抖音小店可以绑定几个抖音号(抖音小店可以绑定0粉丝)

    抖音小店可以绑定几个抖音号(抖音小店可以绑定0粉丝)

  • 第一次用苹果需要注意什么(第一次用苹果需要关机吗)

    第一次用苹果需要注意什么(第一次用苹果需要关机吗)

  • windows7四个默认库分别是(windows7有四个默认)

    windows7四个默认库分别是(windows7有四个默认)

  • 机器语言是面向什么的(机器语言是面向什么的语言)

    机器语言是面向什么的(机器语言是面向什么的语言)

  • 小爱同学是什么干什么用的

    小爱同学是什么干什么用的

  • 小米6后盖开胶了怎么粘(小米6后盖开胶解决方案)

    小米6后盖开胶了怎么粘(小米6后盖开胶解决方案)

  • 如何取消拼多多金猪提醒(如何取消拼多多订单)

    如何取消拼多多金猪提醒(如何取消拼多多订单)

  • 华为手表健康三环啥意思(华为手表健康三环代表什么)

    华为手表健康三环啥意思(华为手表健康三环代表什么)

  • 手机里wadl文件是什么(手机wdg文件)

    手机里wadl文件是什么(手机wdg文件)

  • 电脑上大于等于号怎么打(电脑上大于等于≥怎么输入英文)

    电脑上大于等于号怎么打(电脑上大于等于≥怎么输入英文)

  • 苹果手机闹铃可以自己设置自己的歌曲吗(苹果手机闹铃可以设置法定节假日吗)

    苹果手机闹铃可以自己设置自己的歌曲吗(苹果手机闹铃可以设置法定节假日吗)

  • 小米安全键盘在哪里关闭(小米安全键盘怎么输入符号)

    小米安全键盘在哪里关闭(小米安全键盘怎么输入符号)

  • 在win7中,打开淘宝提示安全证书过期怎么办?(在win7中,打开资源管理器的快捷键)

    在win7中,打开淘宝提示安全证书过期怎么办?(在win7中,打开资源管理器的快捷键)

  • 增值税应交税费和申报的不一样怎么调整
  • 个人所得税缴纳标准税率表
  • 公司每年需要交钱吗
  • 招标代理服务费由谁支付
  • 劳务派遣小规模纳税人税率是多少
  • 堤围防护费什么时候停止征收
  • 一次性补缴的社保能全额退吗
  • 房地产开发企业预缴增值税
  • 建筑企业跨地区
  • 发票没开完可以领取吗?
  • 董事监事的报酬包括哪些
  • 固定资产折旧税务处理
  • 个体工商户有两个经营者
  • 服务费发生退回怎么处理
  • 税收完税证明是契证吗
  • 人工成本全额扣除吗
  • 小规模销项负数发票怎么做账
  • 企业购入用于捐赠的物品
  • 联通官网测网速
  • 进口增值税属于海关代征的税收吗
  • hbuilder打包apk
  • 电竞显示器怎么调整参数
  • mmc.exe是什么
  • php中通过什么属性可以获取数组中元素的个数
  • 销售发票重复开,库存商品怎么处理?
  • adamax优化器
  • php时间戳转换中国标准时间
  • 小规模纳税人免税会计分录
  • 淘宝前端用什么写的
  • u-net优点
  • 社保挂靠公司收费标准是怎样的
  • 一万字综述怎么写
  • vue3的unplugin-auto-import自动引入
  • gpt40
  • js数组方法filter
  • python操作csv
  • 企业的差旅费计入什么科目
  • 退税申报系统里出货明细金额少0.1会比对报关单金额吗
  • 用友t6成本核算
  • 什么是完税证明?完税证明丢了怎么办公司
  • python多线程编程案例
  • 营业外收入 销项税
  • 企业进行成本核算时,应根据生产经营特点
  • 资本公积可以转增资本因此称之为准资本
  • 库存商品过期报废会计分录
  • 贴现凭证的分录
  • 差额事业单位的工资是由财政开支吗
  • 在建工程账务处理会计分录
  • 外币折算差额怎么计算
  • 企业最应避免的外部环境和内部条件组合是
  • 产品的销售费用计入
  • 退票费收入按什么征税
  • 意外伤害条件
  • 免费领课程有什么陷阱
  • xp系统安装软件参数不正确怎么解决
  • wpr是什么软件
  • 在linux中,要解包bugzilla.tar.gz
  • WINDOWS系统还原主要作用
  • gcuservice.exe
  • win7系统360浏览器自动打开怎么关闭
  • windows8使用技巧
  • win10预览体验三个选项
  • linux设置服务器ip地址
  • win10的蓝屏界面
  • win10预览版21301bug
  • ie所有版本
  • autorun病毒怎么清理
  • pythonweb框架有哪些
  • js indexof undefined
  • 爬虫爬取微博
  • jq 绑定事件
  • js中表单
  • asynctask优缺点
  • javascript 对象的this指向
  • python的了解
  • 广西发票查询平台
  • 税务文书有哪些
  • epc项目不接受联合体投标违规吗
  • 税收与税收管理的关系
  • 河南省纪检委网站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设