进程线程协程对比:
- 进程是资源分配的单位
- 线程是操作系统调度的单位
- 进程切换需要的资源很大,效率很低
- 线程切换需要的资源一般,效率一般(不考虑GIL)
- 协程切换需要的任务资源很小,切换效率高
- 多进程,多线程根据cpu核数不一样可能是并行的,但是协程是在一个线程中 所以是并发
- 一段程序必有一个主进程,一个主线程
奇妙比喻:
一条流水线及其生产资料为一个进程
流水线上的工人为单个线程
给闲时的工人分配新的任务, 这个概念就是协程(gevent)
多进程:多条流水线(multiprocessing)
多线程:一条流水线上的多个工人 (threading)