小编Cha*_*nds的帖子

Go中全局线程本地存储的可行性和最佳实践

我是Golang的初学者,我想在Go中实现类似于Java中的映射诊断上下文(MDC)的东西,这是通过线程本地存储来实现的。但是,我发现很难在网上找到有关 Go 中全局线程本地存储的信息。

我有几个问题:

  • 是否可以为Go中的每个goroutine创建一种全局线程本地存储来存储数据和上下文?

  • 尝试实现全局线程局部存储是否被认为是 Go 中的反模式?

  • 是否建议通过在 Go 中实现全局线程本地存储来替代传递上下文的方式?

  • 假设您的选择是,您更喜欢使用传递上下文的方法,还是尝试实现线程本地存储来保存和管理上下文?

我找到了一些对此的参考,但我无法得出结论来决定是否实施它。

multithreading go mdc goroutine thread-local-storage

2
推荐指数
1
解决办法
284
查看次数