Go有类似Java的ThreadLocal吗?

时间:2015-08-11 03:57:00

标签: go goroutine thread-local-storage

我使用Go和Gin设置我的网站,并想知道数据库访问时间。我使用goroutine所以如果不使用类似线程的东西,我必须改变几乎每个函数来做它。 Go有一个很好的方法吗?

1 个答案:

答案 0 :(得分:17)

Go运行时和标准库不提供goroutine本地存储或可用于实现goroutine本地存储的goroutine标识符。

第三方gls包以有趣的方式实现goroutine本地存储。有些人发现这个包令人恐惧,有些人认为它很聪明。

Go团队建议将上下文显式地作为函数参数传递,而不是使用goroutine本地存储。有关详细信息,请参阅context blog postpackage documentation