进程:
打开一个软件,就是开启了一个进程,进程拥有代码和打开的文件资源、数据资源、独立的内存空间
线程:
线程从属于进程,是程序的实际执行者。一个进程至少包含一个主线程,也可以有更多的子线程。
对操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元,无论进程还是线程,都是由操作系统所管理的。
协程:
是一种比线程更加轻量级的存在。正如一个进程可以拥有多个线程一样,一个线程也可以拥有多个协程。
最重要的是,协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)
协程的暂停完全由程序控制,线程的阻塞状态是由操作系统内核来进行切换。
协程的开销远远小于线程的开销。