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

  • airpods pro轻点怎么设置(airpodspro怎么轻击)

    airpods pro轻点怎么设置(airpodspro怎么轻击)

  • iphonex面容设置不了(iphonex面容设置时提示无法识别)

    iphonex面容设置不了(iphonex面容设置时提示无法识别)

  • 快手私信删除了换手机能看到吗(快手私信删除了还能查到吗)

    快手私信删除了换手机能看到吗(快手私信删除了还能查到吗)

  • 存储器的主要功能(存储器的主要功能是什么?为什么要把存储)

    存储器的主要功能(存储器的主要功能是什么?为什么要把存储)

  • 索尼蓝牙耳机怎么配对(索尼蓝牙耳机怎么连蓝牙)

    索尼蓝牙耳机怎么配对(索尼蓝牙耳机怎么连蓝牙)

  • 中国电信4g网络变慢(中国电信4g网络测速)

    中国电信4g网络变慢(中国电信4g网络测速)

  • 苹果打开软件闪退是怎么回事(iphone软件一闪一闪的)

    苹果打开软件闪退是怎么回事(iphone软件一闪一闪的)

  • s20韩版和国行区别(s21韩版和国行)

    s20韩版和国行区别(s21韩版和国行)

  • 微信群待办怎么发布(微信群待办怎么设置)

    微信群待办怎么发布(微信群待办怎么设置)

  • 微信怎么发两千的红包(微信怎么发两千字以上)

    微信怎么发两千的红包(微信怎么发两千字以上)

  • 调制调节器651处理办法(调制调节器651处理办法win10)

    调制调节器651处理办法(调制调节器651处理办法win10)

  • 华为emui10.1新功能(华为emui10.0)

    华为emui10.1新功能(华为emui10.0)

  • 联通宽带已连接不可上网(联通宽带已连接但无法访问互联网)

    联通宽带已连接不可上网(联通宽带已连接但无法访问互联网)

  • 淘宝放单什么意思(淘宝放单什么意思教程视频)

    淘宝放单什么意思(淘宝放单什么意思教程视频)

  • qq扩列错过怎么找回(qq扩列错过加好友怎么办)

    qq扩列错过怎么找回(qq扩列错过加好友怎么办)

  • 电脑三大件指哪三样(电脑三大件怎么搭配)

    电脑三大件指哪三样(电脑三大件怎么搭配)

  • 手机免打扰模式怎么关(手机免打扰模式怎么取消)

    手机免打扰模式怎么关(手机免打扰模式怎么取消)

  • 天猫榜单在哪里查看(天猫榜单怎么弄出来)

    天猫榜单在哪里查看(天猫榜单怎么弄出来)

  • 美图秀秀怎么制作闪照(美图秀秀怎么制作画中画照片)

    美图秀秀怎么制作闪照(美图秀秀怎么制作画中画照片)

  • 转转收到的钱在哪里(转转收到的钱会转到哪里)

    转转收到的钱在哪里(转转收到的钱会转到哪里)

  • xsmax强制重启(xsmax强制重启跳sos)

    xsmax强制重启(xsmax强制重启跳sos)

  • 云闪付免密设置在哪开(云闪付免密设置怎么设置)

    云闪付免密设置在哪开(云闪付免密设置怎么设置)

  • 华为云备份有什么用(华为云备份什么内容)

    华为云备份有什么用(华为云备份什么内容)

  • 苹果4.7寸手机小吗(4.7寸苹果手机有哪几款)

    苹果4.7寸手机小吗(4.7寸苹果手机有哪几款)

  • 关键词优化方法(关键词优化十大方法)

    关键词优化方法(关键词优化十大方法)

  • C语言进阶——自定义类型:枚举、联合(c语音进阶)

    C语言进阶——自定义类型:枚举、联合(c语音进阶)

  • 房地产开发企业土地增值税预缴
  • 娱乐行业缴纳的税收
  • 长期股权投资的账面价值怎么计算
  • 企业代扣代缴个人所得税
  • 无形资产175加计扣除会计如何处理
  • 固定资产清理净损失计入什么科目
  • 简易征收增值税怎么做账
  • 专用存款账户需要备案吗
  • 企业卫生费是指什么
  • 购买加油卡有优惠吗
  • 实收资本不是资产吗
  • 暂估确定收不到发票会计分录怎么做
  • 2018年企业所得税政策变化
  • 进销项税额的会计分录
  • 建筑业简易计税分包差额申报
  • 发票不能开怎么回事
  • 常用的索赔费用计算方法
  • 收到上级补助收入支出时财务会计怎么记账
  • 固定资产清理怎么做账务处理出售
  • 这个月只开了销项负数怎么办
  • 库存与账面不符怎么办
  • 收到负数购入发票怎么办
  • Windows10如何修复引导
  • 一般纳税人的月报,季报年报
  • 实收资本怎么用
  • 增值税专用发票和普通发票的区别
  • 实收资本账户的核算内容是什么
  • 耕地占用补贴标准
  • 增值税一般纳税人和小规模纳税人的区别
  • 小孩不爱吃蔬菜怎么办?
  • 供应商自身的品质问题
  • 前端几种下载文件
  • yolo v5详解
  • 大二一学期学分多少合适
  • vue前端常见面试题
  • 微信公众号开发用什么语言
  • 外购货物用于在建工程分录
  • 自然人税收管理系统官网
  • c语言中使用指针的好处
  • 国家定额发票使用范围
  • 企业办理税务注销需要什么资料
  • 饭馆增值税
  • 药品进销差价会计科目
  • 申购费从哪里扣
  • 公司注销应收账款如何转让给第三方
  • 预付账款为什么属于资产类
  • 代持的股份
  • 成本不够如何计算出来
  • 电子缴税付款凭证是什么结算方式
  • 收购票票样
  • 成本增加比例怎么算的
  • 项目期间费用包括哪些费用
  • 私人银行卡给公司走账有影响吗
  • 工业企业固定资产投资
  • sql server中删除触发器用
  • MySql5.6使用validate password 插件加强密码强度的安装及使用方法
  • mysql中函数创建与调用示例
  • LNMP下使用命令行导出导入MySQL数据库的方法
  • win7电脑初始化
  • centos安装详细
  • SonicStageMonitoring.exe是什么进程 有什么作用
  • linux系统服务器怎么进入桌面
  • win7旗舰版没有睡眠设置
  • windows关机音乐
  • win10老是弹提示
  • win10多任务视图不排序怎么设置
  • linux使用mv命令,结果文件不见了
  • node.js axios
  • 批处理程序
  • python中pyinstaller
  • perl脚本函数
  • opengl怎么学
  • 用原生js写项目
  • python编码函数
  • Jquery uploadify上传插件使用详解
  • python函数详解
  • 期初库存和期末库存是什么意思
  • 税控盘开票怎么添加新商品
  • 福建省茶叶协会会长名单
  • 个人的稿酬所得采用什么税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设