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

  • 职工福利费的税额
  • 小规模纳税人0税率发票
  • 合伙企业投资收益做账
  • 总公司和分公司可以在一个城市吗
  • 劳务公司在异地做项目需要提供当地完税证明
  • 实收资本在报表中怎么看
  • 年末暂估下年怎么入账
  • 可转换可赎回债券
  • 死账呆账的处理程序
  • 记账凭证日期填写哪一天
  • 建筑业预缴税款是什么意思
  • 生产经营期间固定资产报废清理的净损失
  • 股东利润分配怎么交税
  • 没超过标准的招待费缴税吗
  • 设计服务发票怎么入账
  • 未交五险一金的原因
  • 企业年薪扣税政策
  • 维修费和配件能抵税吗
  • 资产和负债可以一增一减吗
  • 农贸市场收取管理费
  • 少计收入被处罚账务处理怎么做?
  • 融资租赁的利息可以税前扣除吗
  • qqprotect.exe是什么进程?怎么结束此进程?
  • 大额医疗救助金怎么申请
  • 已经抵扣增值税专用发票对方要换票怎么办
  • 债券类资产的远期合约是什么
  • 付款给代账公司的费用是什么科目
  • 房屋租赁进项税
  • 借款人约定分期还款中途可以起诉吗
  • 应付票据转应付账款分录
  • windows未能正常启动
  • 我国居民企业甲在境外进行了投资
  • 打开苹果safari浏览器
  • php+jQuery+Ajax实现点赞效果的方法(附源码下载)
  • 怎么缴销空白发票
  • 来料加工企业需注意什么
  • 业务招待费用列支范围
  • php框架推荐
  • uni-app是干嘛的
  • 用php写个简单的编程
  • 可行性研究合同印花税
  • 什么条件可以免于起诉
  • 固定资产折旧怎么做会计科目
  • 房产税按照租金
  • 文化事业建设费税收优惠2023
  • 土地给人家种了几十年还能要回来吗
  • 银行代发工资必须要本行的卡吗
  • 初学access收获心得
  • 单位安装摄像头合法吗
  • 金蝶kis云专业版使用教程
  • 以固定资产换入无形资产
  • 固定资产一次计提折旧
  • 财政补助结转结转的依据
  • 我国税收税类中的流转税
  • 业务协作费计入什么科目
  • 因企业增资而产生的费用
  • 关联公司之间的借款
  • 金蝶美金账户怎么删除
  • 作废的发票税额扣税了怎么办
  • 如何填写记账凭证视频
  • 专业收账公司合法吗
  • 会计内帐外帐的区别在哪
  • sql server Bulk Insert命令详细
  • 数据库中两张表tab1
  • bios中英文对照表图新版
  • win7出现问题
  • 电脑网页字体设置
  • win7系统怎样
  • win8文件夹选项在哪
  • 麒麟系统命令
  • css样式的使用
  • cocos2dx怎么用
  • unity账号登录
  • android开发范例实战宝典
  • javascript数据结构与算法
  • 街道税务所职责和任务
  • 企业所得税年度申报表A类
  • 浙江 国家地理
  • 为什么进了网页不能登录
  • 国内货物运输代理行业代码是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设