1.进程(Process)
概念:是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像在独占地使用硬件。对操作系统来说,进程是最小的资源管理单元。
2.线程(Thread)
概念:线程又叫做轻量级进程,是操作系统调度,是CPU调度的最小单位。
与进程的关系:线程从属于进程,是程序的实际执行者。一个进程可以有多个线程,最少有一个线程,但一个线程只能有一个进程。
Java中线程具有五种状态:初始化 可运行 运行中 阻塞 销毁
3.协程(Coroutines)
协程,又称微线程,纤程;是一种比线程更加轻量级的存在。协程不是进程或线程,其执行过程更类似于子例程,或者说不带返回值的函数调用。
线程的切换会保存到CPU的栈里,协程拥有自己的寄存器上下文和栈
协程最主要的作用是在单线程的条件下实现并发的效果,但实际上还是串行的(像yield一样)
一个线程可以拥有多个协程,协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。