位置: 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怎么设置闹钟(苹果13怎么设置壁纸和锁屏)

    苹果13怎么设置闹钟(苹果13怎么设置壁纸和锁屏)

  • 表格密码忘记怎么打开(表格密码忘记怎么解密)

    表格密码忘记怎么打开(表格密码忘记怎么解密)

  • 微信添加好友有个箭头是什么意思(微信添加好友有上限吗)

    微信添加好友有个箭头是什么意思(微信添加好友有上限吗)

  • 微信收款和零钱不一致(微信收款和零钱服务变绿色)

    微信收款和零钱不一致(微信收款和零钱服务变绿色)

  • 情侣空间连续想念怎么补签(情侣空间连续想念怎么弄)

    情侣空间连续想念怎么补签(情侣空间连续想念怎么弄)

  • erp系统规划包括哪些环节(erp系统计划)

    erp系统规划包括哪些环节(erp系统计划)

  • 必须先启动onenote,然后才能使用此功能(先启动再选择系统)

    必须先启动onenote,然后才能使用此功能(先启动再选择系统)

  • 淘宝买家五颗心代表什么(淘宝买家五心是多少分)

    淘宝买家五颗心代表什么(淘宝买家五心是多少分)

  • 如何视频聊天开手电筒(视频聊天怎么开)

    如何视频聊天开手电筒(视频聊天怎么开)

  • 一般电脑跑分多少合格

    一般电脑跑分多少合格

  • word文档怎么找回保存前的内容(word文档怎么找符号)

    word文档怎么找回保存前的内容(word文档怎么找符号)

  • 如何把视频保存到手机相册(如何把视频保存到百度网盘)

    如何把视频保存到手机相册(如何把视频保存到百度网盘)

  • 红米k30双卡电信没信号(红米k30支不支持双电信)

    红米k30双卡电信没信号(红米k30支不支持双电信)

  • 微信帮别人解封一年几次(微信帮别人解封有风险吗)

    微信帮别人解封一年几次(微信帮别人解封有风险吗)

  • 怎样使手机字体变大(怎样使手机字体变黑)

    怎样使手机字体变大(怎样使手机字体变黑)

  • 如何修复逆光下的人像(逆光后期处理)

    如何修复逆光下的人像(逆光后期处理)

  • 手机qq怎么打开qq邮箱(手机QQ怎么打开群课堂)

    手机qq怎么打开qq邮箱(手机QQ怎么打开群课堂)

  • 怎么解除菜鸟驿站黑名单(怎么解除菜鸟驿站绑定)

    怎么解除菜鸟驿站黑名单(怎么解除菜鸟驿站绑定)

  • 手机拨号显示hd怎么关闭(手机拨号显示hd是什么意思怎么取消)

    手机拨号显示hd怎么关闭(手机拨号显示hd是什么意思怎么取消)

  • 淘宝家乡版和标准版怎么调(淘宝的标准版和家乡版在哪里切换)

    淘宝家乡版和标准版怎么调(淘宝的标准版和家乡版在哪里切换)

  • iphonexsm港版支持电信吗(xsmax港版可以用电信卡吗)

    iphonexsm港版支持电信吗(xsmax港版可以用电信卡吗)

  • 百度账号是不是网盘账号(百度账号是不是只能在一个手机上登录)

    百度账号是不是网盘账号(百度账号是不是只能在一个手机上登录)

  • 省钱月卡怎么取消(省钱月卡怎么取消自动续费微信)

    省钱月卡怎么取消(省钱月卡怎么取消自动续费微信)

  • 苹果12系统如何截图(苹果12系统如何升级)

    苹果12系统如何截图(苹果12系统如何升级)

  • mac隔空投送文件在哪(mac隔空投送文件夹到iphone在哪里找)

    mac隔空投送文件在哪(mac隔空投送文件夹到iphone在哪里找)

  • 家里有蟑螂怎么办(家里有蟑螂怎么找到窝)

    家里有蟑螂怎么办(家里有蟑螂怎么找到窝)

  • CLIP模型(CLIP模型原理)

    CLIP模型(CLIP模型原理)

  • 免税收入怎么做会计分录
  • 财产租赁合同印花税计税依据含税吗
  • 景点门票可以做账吗
  • 一般纳税人应交增值税怎么算
  • 坏账准备计入营业外支出还是资产减值损失
  • 同业清算交易渠道
  • 销售部门快递费用怎么算
  • 调拨单可以根据哪些单据生成
  • 持续经营净利润率怎么算
  • 预付房租收到发票怎么做
  • 非货币投资如何缴纳企业所得税
  • 运输过程中的货损责任
  • 空白增值税报表在哪下载
  • 契税缴纳企业所得税吗
  • 接受控股股东的非现金资产捐赠
  • 公司一直没有做内账违法吗
  • 工资税后扣款
  • 海关进口关税专用缴款书可以抵扣增值税吗
  • 前年的票发现要不得,可以冲红吗
  • 总账期末余额为零怎么写
  • 发行收入要减去股本吗
  • 抬头是别的公司怎么报销
  • 哪些费用可以税后扣除
  • 出口发票开具注意事项及要求有哪些?
  • 开具红字专用发票的情形
  • 未来公司销售一批产品给东方公司
  • 单位统一为员工办的银行卡属于对公账户吗
  • 改建或新建建筑物含义
  • 自己的公司钱能自己用吗
  • 企业预缴多交税了如何申请退税
  • 个人出租商业用房取得的所得
  • 货物销售价比采购价高
  • 鸿蒙系统控制中心
  • 新税法中工资薪金的规定
  • 建筑企业收到预收账款要交增值税吗
  • win11如何添加快捷方式
  • PHP:oci_num_rows()的用法_Oracle函数
  • win10如何禁止安装任何软件
  • 销售商品并收到货款的会计分录
  • 对公帐户收款
  • layuiadmin动态菜单
  • ts和js混用
  • node-js
  • 人工智能该如何规划软件工程师岗位
  • thinkphp session存放位置
  • 小规模纳税人无票收入怎么申报
  • 电脑管理费用入什么账户
  • 在建工程过程中取得收入怎么入账
  • 车改补贴算工资吗
  • 企业残保金该什么时间交
  • 公司制作横幅计入什么科目?
  • 什么叫做公账对公账户
  • 存货增加使经营活动现金净流量减少该怎么办
  • 宣传费税前扣除什么意思
  • 根据出库商品的编码
  • 代扣税是啥
  • 选用劳务派遣人员
  • 给员工发工资发多少合适?
  • 增值税专用发票几个点
  • 扣除土地价款
  • 坏账准备的会计分录例题
  • 理财产品利息计入本金吗
  • 企业去银行
  • MySQL存储过程和函数有什么区别?
  • 应用商店升级版
  • Windows Server 2008下利用Diskpart管理磁盘
  • 如何进入opencore引导
  • win10怎么安装运行库
  • javascript.info
  • perl教程 pdf
  • ext.grid.gridpanel
  • nodejs 获取命令行参数
  • vue如何用
  • js实现左右拖动功能
  • Chrome调试技巧
  • android如何防止js注入
  • 每天一篇文章锻炼口才的文章
  • python多进程多线程协程
  • 国税公告2016年14解读
  • 一般纳税人出租房屋增值税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设