Golang Context是什么

时间:2024-04-03 08:28:50

一、这篇文章我们简要讨论Golang的Context有什么用

1、首先说一下Context的基本作用,然后在讨论他的实现
(1)数据传递,子Context只能看到自己的父Context的数据,子Context是不能看到孙Context添加的数据。
(2)父子协程的协同,比如同时取消父子协程

2、基本数据结构

Context的结构我们可以看一张图

在这里插入图片描述
其实可以把Context 理解成一个特殊的哈希表,我们可以看看他的结构体。
在这里插入图片描述

Value接口,就是放入key和Value
Done()接口是一个管道,负责接收父协程结束信号量

一个Context A可以生成另一个Context B,并且Context B会继承 Context A的数据

3、实际场景应用

Context可以用来保存一些账户信息,包括用户名、邮箱等多个接口可能需要的公共信息