- goroutine 可能会并行执行。
- 然而,协程总是按顺序执行。
Goroutine 的目的是并行(或者可以并行部署),协程一般不是,goroutine 通过通道进行通信,协程通过yield 和resume 操作进行通信,goroutine 比协程更强大,很容易从协程中学习到的逻辑。被复用为 goroutine。
从狭义上讲,goroutine 可以出现在多线程环境中,其中 goroutine 无法控制自己获得优先级支持。协程总是发生在单线程中,并且协程程序要求宿主主动放弃控制权。获取控制权并将其传递给另一个协程。
Goroutine 使用通道通信,协程使用yield 和resume 操作。
Goroutine 和 Coroutine 的概念和操作机制起源于早期的操作系统。
协程的工作机制属于协作任务处理。早期的操作系统要求每个应用程序遵循操作系统的任务处理规则。当应用程序不再需要使用CPU时,它自愿放弃使用它的权利。中央处理器。如果开发人员无意或故意让应用程序占用 CPU 时间过长,操作系统将无法采取任何措施,并且计算机很容易变得无响应或崩溃,您可能会这样做。
Goroutine属于抢占式任务处理,与现有的多线程多进程任务处理非常相似。应用程序对CPU的控制最终必须由操作系统来管理,如果操作系统检测到应用程序长时间占用大量CPU,用户可以终止该任务。的权利。




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

