go里的context

介绍一篇文章,讲的很好
https://studygolang.com/articles/12566

感觉简单理解的话可以拿线程池类比,比如你有一个任务A,可以分为a1,a2,a3…,用线程池做的时候A作为父线程肯定要和子线程传递一些内容(变量,参数,返回值等),那么所有的这些内容就需要被保存起来并且能在父子之间传递,之前做线程池时用的方法是把这些变量定义在一个结构体里,然后挂在父子线程上并来回传递,比较笨拙。
go是用多个goroutine 实现的,并且为开发人员实现了一个 context 完成一些参数和环境对于同一个任务在不同goroutine 之间的传递

猜你喜欢

转载自blog.csdn.net/LiuYangQ_Q/article/details/91410983