进程是程序运行的实例,它是操作系统分配资源的最小单位,它能在内存空间里形成自己独立的内存体,这个内存体有自己独立的地址空间,有自己的堆。
线程是操作系统调度的最小单位。

区别和联系:

调度:线程作为调度和分配cpu的最小单位,进程是操作系统分配资源的最小单位
并发性:进程可以并发,进程里面的线程也可以并发
拥有资源:进程拥有操作系统分配的资源,操作系统不给线程分配资源,线程可以访问隶属于此进程的资源
系统开销:在创建和销毁进程时,操作系统都要回收和分配资源。导致系统的开销明显大于线程切换的开销。但是进程有独立的运行空间,一个进程发生问题时,不会影响其他的进程。但是线程出问题时,会影响同属于此进程的其他线程。进程死掉所有线程也都死掉了。

联系:

一个进程可以拥有多个线程,但是一个线程只能隶属于一个进程,但至少有一个线程
资源分配的进程,同一进程的所有线程共享同一资源。
处理机分配给线程,线程是真正在CPU上运行

一个线程就是调用一个子程序

协程:是比线程更轻量化的存在,它不被操作系统内核管理,而完全是由程序控制,
协程在子程序内部是可以中断的

协程的特点在于是一个线程执行,那和多线程比,协程有何优势?
极高的执行效率:因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显;

不需要多线程的锁机制:因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。
https://blog.csdn.net/daaikuaichuan/article/details/82951084#font_size5font_2