进程 线程 协程

一、进程

进程是一个具有一定独立功能的程序,是操作系统进行资源分配和调度的独立单位,是应用程序运行的载体。

二、线程

线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。

进程与线程的区别

1.线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;

2.一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;

3.进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间及一些进程级的资源,某进程内的线程在其它进程不可见;

4.调度和切换:线程上下文切换比进程上下文切换要快得多。

三、协程

协程在线程内执行。 一个线程内部可以有多个协程,但在给定时间一个线程中只能执行一条指令。 这意味着如果在同一个线程中有十个协程,那么在给定的时间点只会运行其中一个。

协程的优点

1.线程的切换由操作系统负责调度,协程由用户自己进行调度,因此减少了上下文切换,提高了效率。

2.由于在同一个线程上,因此可以避免竞争关系而使用锁。

参考:

https://www.cnblogs.com/Survivalist/p/11527949.html#%E5%8D%8F%E7%A8%8B

https://www.liaoxuefeng.com/wiki/1016959663602400/1017968846697824