都可以提高并发能力
进程和线程是计算机中真是存在的,而协程是程序员人为创造出来的
#是什么
进程是计算机资源分配的最小单位.
线程是计算机中可以被cpu调度的最小单位.
协程也可以称为“微线程”,实际上让一个线程轮番执行一些任务
#联系
一个进程中可以有多个线程,同一个进程中的线程可以共享此进程中的资源,
一个线程可以有多个协程,
一个应用程序中至少有一个进程,一个进程中至少有一个线程
#应用场景
在Python中因为有GIL锁,他同一时刻保证一个进程中只有一个线程可以被cpu调度,所以在使用Python开发时要注意:
计算密集型,用多进程.
IO密集型,用多线程/协程+IO操作
单纯的协程没办法提高并发,只是代码之间的切换,加上IO自动切换才能有意义
默认进程之间无法进行资源共享,如果主要想要通讯可以基于:文件/网络/Queue.
资源浪费
进程>线程>协程+IO切换
节省时间
进程≈线程≈协程+IO操作<串行操作
形象的关系
工厂 -> 应用程序
车间 -> 进程
工人 -> 线程
螺丝钉->协程