zoukankan      html  css  js  c++  java
  • Python3 进程、线程和协程

     Infi-chu:

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

    进程、线程和协程的对比

    1.定义对比

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

    【注】

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

    2.功能对比

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

    3.关系对比

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

    4.区别

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

    5.优缺点:

    多进程:

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

    多线程:

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

    协程:

    • 协程切换任务资源小,效率高
  • 相关阅读:
    HDU 4069 Squiggly Sudoku
    SPOJ 1771 Yet Another NQueen Problem
    POJ 3469 Dual Core CPU
    CF 118E Bertown roads
    URAL 1664 Pipeline Transportation
    POJ 3076 Sudoku
    UVA 10330 Power Transmission
    HDU 1426 Sudoku Killer
    POJ 3074 Sudoku
    HDU 3315 My Brute
  • 原文地址:https://www.cnblogs.com/Infi-chu/p/11376801.html
Copyright © 2011-2022 走看看