1、反对“全局变量”
问题1 : context可以理解为是一个“全局变量”吗?
在软件设计的工程中,对全局变量基本持否定态度:
1、代码变得耦合;
2、暴露了多余的信息;
3、全局变量在多线程环境下使用锁,浪费CPU资源;
但是它也有好的方面:提升了某些变量的作用域,保证了这些数据的生命周期。
为了解决负面影响,很多语言出现了“不那么全局的全局变量”,就比如 针对“线程局部”、“包局部”的全局变量而出现的this ,匿名形式的 “闭包”。
有一个说法就是:每一段程序都有很多外部变量(极度简单的函数略过),一旦有了外部变量,这段程序就不完整,不能独立运行,而为了让他们能运行,就要给所有的外部变量设置值,而这些值的集合就叫做Context。
参考:
https://www.cnblogs.com/sybil-hxl/p/17337031.html 【利用channel关闭,实现Context.Done()】
https://www.cnblogs.com/sybil-hxl/p/17078866.html 【web网络协议中的Context】
https://zhuanlan.zhihu.com/p/439718947