• Python3 进程、线程和协程


     Infi-chu:

    http://www.cnblogs.com/Infi-chu/

    进程、线程和协程的对比

    1.定义对比

    • 进程:是系统进行资源分配的基本单位,每启动一个进程,操作系统都需要为其分配运行资源
    • 线程:是运行程序中的一个执行分支,是CPU调度的基本单位
    • 协程:在不开辟线程的基础上完成多任务,也就是在单线程的情况下完成多任务,多个任务按照一定顺序交替执行

    【注】

    进程是操作系统资源分配的基本单位;线程是CPU调度的基本单位

    2.功能对比

    • 进程:能够完成多任务,如:一台电脑运行多个软件
    • 线程:能够完成多任务,如:在一个QQ中开启多个聊天窗口

    3.关系对比

    • 线程是依附在进程里面的,没有进程就没有线程
    • 一个进程默认提供一条线程,进程可以创建多个线程
    • 一个线程里面可以有多个协程

    4.区别

    • 进程之间不共享全局变量
    • 线程之间共享全局变量,需要注意资源竞争的问题。解决手段:互斥锁或线程同步
    • 创建进程的资源开销要比创建线程的资源开销大
    • 进程是操作系统资源分配的基本单位,线程是CPU调度的基本单位
    • 线程不能够独立执行,必须依存在进程中
    • 多进程开发比单进程多线程开发稳定性要强
    • 多进程、多线程根据CPU核数不一样可能是并行的,但是协程是在一个线程中执行的,所以是并发的

    5.优缺点:

    多进程:

    • 优点:可以用多核
    • 缺点:资源开销大

    多线程:

    • 优点:资源开销小
    • 缺点:不能使用多核

    协程:

    • 协程切换任务资源小,效率高
  • 相关阅读:
    python之openpyxl模块
    jquery实现轮播图
    Css进阶练习(实现抽屉网样式布局)
    python之UnittTest模块
    zkClient的使用
    Watcher、ZK状态、事件类型 ,权限
    java 操作zookeeper
    Zookeeper简介
    RocketMq顺序消费
    RocketMq --consumer自动实现负载均衡
  • 原文地址:https://www.cnblogs.com/Infi-chu/p/11376801.html
Copyright © 2020-2023  润新知