Golang-context

1. context 是什么?

context 是 Golang 提供的一种 goroutine 的管理机制,用于管理继承自"根 context"的所有 goroutine 的启动、停止等其他生命周期活动。

1.1 context 相关 API

1.1.1 context整体类图

Golang-context_第1张图片

1.1.2 context 顶层接口-context接口

1.1.3 context 顶层接口的实现-emptyCtx类型

1.1.4 context 顶层接口的继承衍生

2. 为什么要添加 context 相关包?

2.1 context 的出现背景

Golang Context,Golang 程序的上下文,相关 API 拥有完整控制 Golang 程序执行时机的能力,主要用作控制 Goroutine 的执行

2.1.1 使用 WaitGroup 控制并发 goroutine——被动等待 goroutine 的结束,无法主动结束 goroutine

context_test.go Test_Control_Goroutine_WaitGroup

2.1.2 使用 select + chan 机制控制并发 goroutine——实现流程过于复杂

context_test.go Test_Control_Goroutine_Select_Chan

2.1.3 使用 context 控制并发 goroutine——主动控制,内置,轻量

3. context 的相关用法

3.1 context 控制单个 goroutine

context_test.go Test_Context_Control_One_Goroutine

3.2 context 控制多个 goroutine

context_test.go Test_Context_Control_Multi_Goroutine

3.3 context 的使用原则

4. 参考文档

Go语言实战笔记(二十)| Go Context
深度解密Go语言之context

你可能感兴趣的:(Golang)