前言 Goroutine是Golang中实现的协程,它保证了Golang的高并发的可用性,这些Goroutine分配、负载、调度到处理器上采用的是G-M-P模型。 进程、线程、Goroutine 进程是操作系统进行资源分配调度的最小单元,而线程则是CPU进行调度的最小单元。进程和线程的切换管理需要操作系统接管,因此在切换时会涉及到CPU的上下文切换,会导致切换的成本较大。而Goroutine作为用户级线程在切换时有用户控制,因此切换成本没有内核级线程大。并且,内核级线程是抢占式调度,但是用户级线程是协作式调度(一个…