go语言如果要用ThreadLocal有没有更好的方案?

focussoft · · 5354 次点击
<a href="/user/focussoft" title="@focussoft">@focussoft</a> 用goroutineid放在一个map中,取出的时候用goroutineid取不行么。threadlocal的原理就是这样,就把线程id换成了goroutineid。而且我看测试,有人说测试了几百万次没有出现问题,不过毕竟几百万不是非常多。没有实际测试线上跑过,也无法确定是否真的可行
#5
更多评论
官方觉得他们这样设计的优美~显示传递数据。ThreadLocal比较隐蔽
#1
其实我觉得用go routine是无法实现threadlocal的, 因为都是go routine所以没有总的thread可以共享, 有些变通的方法也不太完善,这里感觉像是golang的鱼和熊掌之类的东西不可兼得.
#2