进程和线程和协程之间的关系
进程
电脑的应用程序,都是进程,它有自己的地址空间
包括文本区域(text region)数据区域(data region)和堆栈(stack region)
文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。
当程序处于IO阻塞的时候 程序会一起等。 三个状态 就绪、运行和阻塞
线程
独立运行的程序片段,通常在一个进程中可以包含若干个线程,一个进程中至少有一个主线程,线程可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统多个程序间并发执行的程度。
协程
相当于微线程.一个线程执行
协程极高的执行效率。因为子程序function内切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显