U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 帮助中心 >

Python多进程、多线程、协程编程

来源:http://www.tudoupe.com时间:2022-07-29

Python进程(Process)、线程(Thread)、协程(asyncio)编程

一、多进程编程

  • 进程概念

    过程是计算机操作系统分配资源的基本单元,一个程序执行的例子,这就是正在执行的程序。在OS的眼里,进程是一个负责分配系统资源CPU时间和内存的实体。一般来说,系统由一系列过程组成:操作系统过程执行系统代码,用户程序执行用户代码,计算机通过CPU重新使用多个路径,所有这些过程都可以同时执行,因此,可执行过程的数目与CPU性能有关。

    1、进程的基本状态

    • 就绪:进程的初始状态意味着进程已经具备CPU以外的所有执行条件
    • 运行:进程的初始状态意味着进程已经接收了一个处理器,不需要等待其他资源,状态正在执行
    • 阻塞:进程阻塞也称为进程等待状态,意思是进程等待特定事件(例如I/O操作)的发生,在此期间,进程仍处于内存中并占有CPU资源

    2、图示

    在这里插入图片描述

  • 过程基本使用例

    • Process简介

      python内置的multiprocessing模块提供了类来方便用户创建一个多进程,其基本结构和参数如下:

      • 结构

      • 参数

        • 目标:调用对象,通常是函数、类、进程的执行实体
        • 名称:进程名称
        • args:调用对象的位置参数组件
        • kwargs:调用对象的字典
        • 组:基本上没有使用,忽略
      • 过程类提供的方法

        • is_alive():返回过程是否被激活
        • 停止进程直到进程执行完成或终止为止
        • 在可重写的进程中运行的函数
        • 启动进程,进程开始运行
        • terminate(): 进程终止
    • 创建进程过程

    • 创建自定义进程继承过程

  • 线程概念

    线性过程也被称为轻量过程。线性是执行操作电话的操作系统最小的单元,一般来说,一个过程包含多个线程,至少包含一个线程,也就是说,线程是整个过程的实际操作单元,该线程本身不用于系统资源,它只需要必要的基本资源,但所有属于同一进程的资源都可以在线程之间共享,同一进程中的线程可以同时执行,一个线程可以创建和摧毁另一个线程,因此,多线程中,线条异常可能导致整个多个线条异常,但是多进程不会,因为每个过程的资源都是独立的。

    1、线程的基本状态

    • 就绪:线程的初始状态意味着线程有所有运行的条件,等待处理器,并且逻辑上已经运行
    • 运行:线程的初始状态是线程占用处理器并执行的状态
    • 阻塞:线程阻塞状态是线程等待特定事件或信号数量的状态,逻辑上不能运行

    2、图示

    在这里插入图片描述

  • 线程基本使用例

    • Thread简介

      python提供了实现线程函数的线程类,其基本结构和参数与过程一致,如下:

      • 结构

      • 参数

        • 目标:调用对象,通常是函数、类、进程的执行实体
        • 名称:进程名称
        • args:调用对象的位置参数组件
        • kwargs:调用对象的字典
        • 组:基本上没有使用,忽略
      • 过程类提供的方法

        • is_alive():返回过程是否被激活
        • 停止进程直到进程执行完成或终止为止
        • 在可重写的进程中运行的函数
        • 启动进程,进程开始运行
        • terminate(): 进程终止
    • 创建线程线程

    • 创建一个自定义Thread线程继承Thread类

三、协程编程

  • 协程概念

    坐标是轻量线程,拥有自己的注册和堆栈,协程调度切换时,保存存储库上下文并堆栈到另一个位置,切回来时,恢复预备状态,因此,共处理器可以保留最后的调用状态信息,即每次过程重入,它相当于输入先前的调用状态。编码适合IO密集的任务处理,因为连贯性是基于线性,它的呼叫是线程中的进程,是单线程操作,因此,效率略高于多线性。

  • asyncio的基本例子

    • asyncio简介

      python通常使用的编码库,如asyncio,与 python的async/await结合起来,可以方便地用于编码操作。

    • 基本使用

4.差异与关系及应用场景

  • 区别和联系

    类型 区别和联系不同点
    多进程 多个任务可以同时处理。多个进程被设计为充分利用CPU性能完成多个任务。
    适用于大规模计算任务(计算密集型),线程的链接是包含线程的进程。
    进程至少包含一个线程, 即进程运行实体.
    多线程 能同时处理多个任务,线性是执行操作电话的操作系统最小的单元,被包含于进程之中。
    一个线程可以共享同一进程的资源,因此使用多个线程可以大大增加资源利用,使程序更快响应。
    协程 多个任务可以同时处理,编码是一个轻量级线程,一个线程,
    坐标处理是在线程中进行的,即线程包含坐标。
    编码比线性编程略有效率,和线性编程一样,适合IO密集的任务处理。
  • 场景重复计算分类与选择的应用

      • 计算密度-多处理/共处理-CPU利用率

        计算密度是一种非常大的、集中的计算、逻辑判断类型,也被称为CPU密度,因为它主要占用CPU资源,并且当计算任务的数量与CPU核心的数量相等时,CPU最有效的时候,所以计算密度任务特别消耗CPU。

      • IO密集型-多线性-网络(输入/输出)

        IO密度是一种输入输出操作,在计算和处理过程中需要大量的输入和输出。例如,当磁盘读取数据和输出数据非常大时,它属于IO密度类型。因为IO操作的运行时间比CPU和内存运行时间长得多,所以大部分时间任务都在等待IO操作完成,IO的特点是低 CPU 消耗,所以,IO任务越多,CPU效率越高,当然不是越多越好,有一个极限值。

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息