Python中多线程和多处理的分析

技术Python中多线程和多处理的分析本篇内容主要讲解“Python中多线程和多处理的分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中多线程和多处理的分析”吧

本篇内容主要讲解"蟒蛇中多线程和多处理的分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"蟒蛇中多线程和多处理的分析"吧!

多线程

简单地说,线程允许您并行地运行程序。花费大量时间等待外部事件的任务通常适合线程化。它们也称为输入/输出绑定任务例如从文件中读写,网络操作或使用应用程序接口在线下载。让我们来看一个示例,它展示了使用线程的好处。

1. 没有线程

在本例中,我们希望通过顺序运行程序来查看从美国石油学会下载15张图像需要多长时间:

导入requestsimporttimeimg _ URL=[' https://]个图像。unsplash。com/photo-1516117172878-fd2c 41 F4 a 759 ',' https://图片。unsplash。com/photo-1532009324734-20 a7a 5813719 ',' https://图片。unsplash。com/photo-152444444444444669-6633 content not open(img _ name,' WB ')asimg _ file : img _ file。write(img _ bytes)# savegimagetodiskffinish=time。perf _ counter()# endtimer print(f '完成于{ round(finish-start,2)}秒)' #结果完成于23.1019267551秒一共用时23秒。

2. 多线程

让我们看看派顿中的线程模块如何显著地改进我们的程序执行:

从并发导入时间。futureimportthreadpooleexecutudefdownload _ images(URL): img _ name=img _ URL。split('/')[3]img _ bytes=请求。获取(img _ URL).contentwithopen(img_name,' WB ')asimg _ file : img _ file。write(img _ bytes)print(f ' { img _ name }被下载')start=time。perf _ counter()# starttimerwithThreadPoolExecutor :结果=executor。map(download _ images,img _ URL)# thissimilartmap(func,* iterables)finish=time。perf _ counter()# endtimerprint(f ' finished in { round(finish我们可以看到,与不使用线程代码相比,使用线程代码可以显著提高速度。从23秒到5秒。

对于本例,请注意在创建线程时存在开销,因此将线程用于多个应用程序接口调用是有意义的,而不仅仅是单个调用。

此外,对于密集的计算,如数据处理,图像处理多处理比线程执行得更好。

到此,相信大家对"蟒蛇中多线程和多处理的分析"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/66409.html

(0)

相关推荐

  • yum本地及远程仓库搭建

    技术yum本地及远程仓库搭建 yum本地及远程仓库搭建Linux中安装软件的三种方式
    1、哪三种方式rpm安装
    yum安装
    源代码编译安装2、区别
    ? rpm安装类似于windows中的安装包,下载下来

    礼包 2021年12月17日
  • 小字加偏旁,“少”字可以加什么偏旁

    技术小字加偏旁,“少”字可以加什么偏旁一小字加偏旁、加禾字旁,秒。miǎo 
    1、谷物种子壳上的芒,引申为细微,微小:~忽(喻细微)。 
    2、时间的计算单位,一分钟的六十分之一:~表。~针。 
    3、弧和角的计算单位

    生活 2021年10月30日
  • Java如何连接COM对象

    技术Java如何连接COM对象这篇文章将为大家详细讲解有关Java如何连接COM对象,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 问题是在CSDN上一网友提出的将 m$ word 转

    攻略 2021年12月9日
  • C语言数据类型是如何被大多数计算机系统所支持

    技术C语言数据类型是如何被大多数计算机系统所支持今天就跟大家聊聊有关C语言数据类型是如何被大多数计算机系统所支持,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。问题

    攻略 2021年10月29日
  • consumer自带函数式接口(console接口是常用接口吗)

    技术基于Consumer接口、Predicate接口初使用是怎样的这篇文章将为大家详细讲解有关基于Consumer接口、Predicate接口初使用是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这

    攻略 2021年12月20日
  • 循环移位(Cycle)

    技术循环移位(Cycle) 循环移位(Cycle)Description
    Cycle shifting refers to following operation on the sting. Movin

    礼包 2021年11月27日