进程:
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动。进程是系统进行资源分配和调度的最小单位。 每个进程有自己独立的内存空间,不同进程之间通过进程间通信来进行通信。
线程:
线程是进程的一个实体,每个进程都至少有一个主线程。线程自己不拥有系统资源。线程是程序执行的一个单元。 操作系统调度的线程是自己的内核线程,但是用户创造的线程需要挂靠在内核线程上。所以存在一对一,一对多的模型。
协程:
在高IO的情境下,会将线程进一步抽象。线程仍然是操作系统进行的切换,而协程是runtime时期的切换。当有IO请求时,直接放掉所有权,调度其他的协程进行运行。