🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 串行、并发、并行 ``` 串行:我们都是先读小学,小学毕业后再读初中,读完初中再读高中。 并发:同一时间段内执行多个任务(你在用微信和两个女朋友聊天)。 并行:同一时刻执行多个任务(你和你朋友都在用微信和女朋友聊天) ``` ## 进程、线程和协程 ``` 进程(process):程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。 线程(thread):操作系统基于进程开启的轻量级进程,是操作系统调度执行的最小单位。 线程是进程下面又分出来的,一个进程里至少有一个线程,比如车间里的工人, 工人之间是可以共享资源等等的进程与线程是操作系统引发出来的概念,进程就相当于一个大的车间, cpu就相当于一个工厂,工厂里面有各种各样的车间,进程把工厂分成了很多个车间, 车间与车间相当于物理隔离了,资源等等都被隔离了 协程(coroutine):非操作系统提供而是由用户自行创建和控制的用户态‘线程’,比线程更轻量级,执行效率高, 占用内存少,协程可以被调度,调度策略由应用层代码定义,即可被高度自定义实现 ``` ##重点:**Go语言采用的并发模型是CSP(Communicating Sequential Processes),提倡通过 通信共享内存而不是通过共享内存而实现通信。**