(1)进程
①操作系统进行资源分配和调度的基本单位,多个进程之间相互独立;
②稳定性好,如果一个进程崩溃,不影响其它进程,但是进程消耗资源大,开启的进程数量有限制;
(2)线程
①CPU进行资源分配和调度的基本单位,线程是进程的一部分,是比进程更小的能独立运行的基本单位,一个进程下的多个线程可以共享进程的所有资源;
②如果是IO密集型操作,则可以选择多线程运行效率高,缺点是如果一个线程崩溃,都会造成进程的崩溃;
(3)协程
① 协程,是一种比线程更加轻量级的存在,协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。这样带来的好处就是性能得到了很大的提升,不会像线程切换那样消耗资源;
(1)IO密集型操作使用多线程,在用户输入、sleep时候,可以切换到其它执行,减少等待的时间;
(2)CPU密集型操作使用多进程,因为假如IO操作少,用多线程的话,因为线程共享一个全局解释器锁,当运行的线程会霸占GIL,其它线程没有GIL,就不能充分利用多核CPU的优势;



