iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中多线程和多处理的分析
  • 718
分享到

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

2023-06-16 13:06:51 718人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python中多线程和多处理的分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中多线程和多处理的分析”吧!多线程简单地说,线程允许您并行地运行程序。花费大量时间等

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

多线程

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

1. 没有线程

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

import requests import time img_urls = [     'https://images.unsplash.com/photo-1516117172878-fd2c41f4a759',     'Https://images.unsplash.com/photo-1532009324734-20a7a5813719',     'https://images.unsplash.com/photo-1524429656589-6633a470097c',     'https://images.unsplash.com/photo-1530224264768-7ff8c1789d79',     'https://images.unsplash.com/photo-1564135624576-c5c88640f235',     'https://images.unsplash.com/photo-1541698444083-023c97d3f4b6',     'https://images.unsplash.com/photo-1522364723953-452d3431c267',     'https://images.unsplash.com/photo-1513938709626-033611b8cc03',     'https://images.unsplash.com/photo-1507143550189-fed454f93097',     'https://images.unsplash.com/photo-1493976040374-85c8e12f0c0e',     'https://images.unsplash.com/photo-1504198453319-5ce911bafcde',     'https://images.unsplash.com/photo-1530122037265-a5f1f91d3b99',     'https://images.unsplash.com/photo-1516972810927-80185027ca84',     'https://images.unsplash.com/photo-1550439062-609e1531270e',     'https://images.unsplash.com/photo-1549692520-acc6669e2f0c' ]  start = time.perf_counter() #start timer for img_url in img_urls:     img_name = img_url.split('/')[3] #get image name from url     img_bytes = requests.get(img_url).content with open(img_name, 'wb') as img_file:      img_file.write(img_bytes) #save image to disk   finish = time.perf_counter() #end timer print(f"Finished in {round(finish-start,2)} seconds")   #results Finished in 23.101926751 seconds

一共用时23秒。

2. 多线程

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

import time from concurrent.futures import ThreadPoolExecutor  def download_images(url):     img_name = img_url.split('/')[3]     img_bytes = requests.get(img_url).content     with open(img_name, 'wb') as img_file:          img_file.write(img_bytes)          print(f"{img_name} was downloaded")  start = time.perf_counter() #start timer with ThreadPoolExecutor() as executor:     results = executor.map(download_images,img_urls) #this is Similar to map(func, *iterables) finish = time.perf_counter() #end timer print(f"Finished in {round(finish-start,2)} seconds")  #results  Finished in 5.544147536 seconds

我们可以看到,与不使用线程代码相比,使用线程代码可以显著提高速度。从23秒到5秒。

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

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

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

--结束END--

本文标题: Python中多线程和多处理的分析

本文链接: https://www.lsjlt.com/news/283668.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中多线程和多处理的分析
    本篇内容主要讲解“Python中多线程和多处理的分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中多线程和多处理的分析”吧!多线程简单地说,线程允许您并行地运行程序。花费大量时间等...
    99+
    2023-06-16
  • python爬虫中多线程和多进程的示例分析
    小编给大家分享一下python爬虫中多线程和多进程的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于...
    99+
    2023-06-14
  • Node.js中的多进程和多线程实例分析
    本篇内容主要讲解“Node.js中的多进程和多线程实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中的多进程和多线程实例分析”吧!我们都知道...
    99+
    2024-04-02
  • Python中多线程和多处理的指南是怎样的
    Python中多线程和多处理的指南是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用Python分析数据,如果使用了正确的数据结构和算法,有时可以大量提高程序的速度。实...
    99+
    2023-06-05
  • Python多线程的示例分析
    这篇文章将为大家详细讲解有关Python多线程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。线程相对进程来说是“轻量级”的,操作系统用较少的资源创建和管理线程。程序中的线程在相同的内存空间中执行...
    99+
    2023-06-17
  • Python多线程即相关理念分析
    这篇文章主要介绍“Python多线程即相关理念分析”,在日常操作中,相信很多人在Python多线程即相关理念分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python多线程即相关理念分析”的疑惑有所帮助!...
    99+
    2023-06-21
  • python 多线程处理List
    # -*- coding:UTF-8 -*-#"""根据Redis的密码字典,暴力破解"""import redisimport sys,osimport threadingBIN="/usr/local/bin/medusa"#medus...
    99+
    2023-01-31
    多线程 python List
  • Python多线程实例分析
    这篇文章主要介绍“Python多线程实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python多线程实例分析”文章能帮助大家解决问题。线程讲解  多线程类似于同时执行多个不同程序,多线程运行...
    99+
    2023-06-29
  • Python中多处理与多线程的区别是什么
    Python中多处理与多线程的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是线程你为什么想要它Python是一种线性语言。但是,当您需要更多的处理能力时,线程模...
    99+
    2023-06-16
  • Java多线程之Park和Unpark原理分析
    这篇文章主要介绍了Java多线程之Park和Unpark原理分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适...
    99+
    2023-06-14
  • Python中线程池模块之多线程的示例分析
    这篇文章将为大家详细讲解有关Python中线程池模块之多线程的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、线程池模块引入from concurrent.futures i...
    99+
    2023-06-15
  • 分析详解python多线程与多进程区别
    目录1 基础知识1.1 线程1.2 进程1.3 两者的区别2 Python 多进程2.1 创建多进程方法1:直接使用Process方法2:继承Process来自定义进程类,重写run...
    99+
    2024-04-02
  • java中多线程的示例分析
    这篇文章主要介绍了java中多线程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。java多线程并发与并行:并行: 指两个或多个事件在同一时刻发生 ( 同时发生 ) ...
    99+
    2023-06-20
  • iOS中多线程的示例分析
    这篇文章给大家分享的是有关iOS中多线程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、iOS的三种多线程技术NSThread–优点:NSThread 比其他两个轻量级,使用简单–缺点:需要自己管理线...
    99+
    2023-06-21
  • python多线程和多进程(二)
    ---恢复内容开始--- 一、多进程   1、multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似。 import time from mult...
    99+
    2023-01-30
    多线程 进程 python
  • python socket多线程和多进程
    在socket中,如果直接创建的话,是只能接受一个用户的请求需要实现socketserver中的handle方法,可以实现多进程并发访问 SocketServer内部使用 IO多路复用 以及 “多线程” 和 “多进程” ,从而实现并发处理...
    99+
    2023-01-31
    多线程 进程 python
  • 如何在Python中实现多线程和多进程的实时接口和文件处理?
    在Python中,多线程和多进程是实现并行处理的两种方式。多线程和多进程的区别在于,多线程是在同一个进程中创建多个线程来并行执行任务,而多进程是在不同的进程中创建多个进程来并行执行任务。在本文中,我们将学习如何在Python中实现多线程和多...
    99+
    2023-08-20
    文件 实时 接口
  • C#多线程中线程同步的示例分析
    这篇文章将为大家详细讲解有关C#多线程中线程同步的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言我们先来看下面一个例子:using System;using Syste...
    99+
    2023-06-29
  • python中多进程和多线程的使用方法
    这篇文章主要介绍了python中多进程和多线程的使用方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。进程和线程进程是系统进行资源分配的最小单位,线程是系统进行调度执行的最小...
    99+
    2023-06-14
  • Java程序中多线程的示例分析
    这篇文章主要介绍了Java程序中多线程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。  为什么会排队等待?  下面的这个简单的 Java 程序完成四项不相关的任务。...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作