Go 学习笔记(68)— goroutine 并发控制神器 Context

1. 什么是 Context

一个任务会有很多个 goroutine 协作完成,一次 HTTP 请求也会触发很多个 goroutine 的启动,而这些 goroutine 有可能会启动更多的子 goroutine ,并且无法预知有多少层 goroutine 、每一层有多少个 goroutine

如果因为某些原因导致任务终止了,HTTP 请求取消了,那么它们启动的 goroutine 怎么办?该如何取消呢?因为取消这些 goroutine 可以节约内存,提升性能,同时避免不可预料的 Bug。

Context 就是用来简化解决这些问题的,并且是并发安全的。Context 是一个接口,它具备手动、定时、超时发出取消信号、传值等功能,主要用于控制多个 goroutine 之间的协作,尤其是取消操作。一旦取消指令下达,那么被 Context 跟踪的这些 goroutine 都会收到取消信号,就可以做清理和退出操作。

Goroutine 的应用更多的需要配合 context

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wohu007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值