进程
系统分配资源的最小单位.
有自己的地址空间,不共享内存空间,独立的内存空间.
任务切换开销最大
至少存在五种基本状态:初始态,执行态,等待态(阻塞),就绪态,终止态.
线程(CPU调度的基本单位)
一个进程是由线程来负责执行的,是程序执行的最小单元.
一个进程可以创建多个线程(并发(单核)和并行(多核))
独占的资源: 自己的线程ID,寄存器组的值,线程堆栈,线程优先级,信号屏蔽码
公共的资源(一个进程里面的资源): 全部线程共享的相同虚拟地址空间(分配给该进程的内存空间),进程ID,进程组ID,
全局变量(可以被大家修改和访问),
静态变量(进程申请的内存空间)
文件描述符(该进程的全部线程都可以读写的文件)
协程(用户态的线程)
用户自行创建,切换不需要进入内核态.
线程和协程开销比较:
线程切换时需要保存和恢复上下文,涉及到上下文切换的开销。而协程切换时不需要操作系统的介入,只需要保存和恢复自身的上下文,切换开销较小。