我能理解在有些情况下,比如一些框架或者工具会使用一些奇淫巧技使用 ThreadLocal 传递变量,但是在业务代码里,这种东西可读性很差,你压根不知道是在什么地方使用的,看起来费劲。
最近看公司项目 debug,走到一半直接走不下去了,大量了使用 ThreadLocal,难受。。。
1
xuanbg 2021-01-28 11:55:52 +08:00
不合理
|
2
sdrzlyz 2021-01-28 12:01:14 +08:00
ThreadLocal 也好,Context 也罢,只适合传输少量约定的内容。毕竟是个大黑盒。。。
|
3
wolfie 2021-01-28 12:02:05 +08:00
不合理,平时只有在切面级别用到。
估计是想省略重载吧,方法注释怎么写。 |
4
no1xsyzy 2021-01-28 12:47:47 +08:00
thread local 的使用需要被封装为 getter/setter,而不是直接使用。
这样可以通过 “哪里调用了 get / set” 来知道哪儿用了。 参考: https://docs.racket-lang.org/reference/parameters.html |
5
whx 2021-01-28 12:53:14 +08:00 via iPhone
不合理。
曾经也是喜欢用 threadlocal,现在能不用就不用。不明确,也不知道什么时候会引发 bug 。 还是方法传参更可靠,明确。 |
6
araaaa 2021-01-28 13:04:54 +08:00 via iPhone
threadlocal 应该用作最后手段来使用
|
7
araaaa 2021-01-28 13:12:55 +08:00 via iPhone
也就是说有一个静态变量,并且它存在并发访问问题,但是又允许它在不同线程中非共享,那么可以考虑用 threadlocal 了
|
8
chendy 2021-01-28 13:34:30 +08:00
乱飞肯定不对,想看看楼主的项目里是怎么个乱飞法
|
9
danielmiao 2021-01-28 17:23:21 +08:00
正常情况下,ThreadLocal 的只会在同一个类的可重入函数里当缓冲区用吧。。。难道还能当变量传来传去???
|
10
wangyanrui 2021-01-28 17:32:41 +08:00 via iPhone
类内部私有方法,飞不飞无所谓
对外方法,最好别用 |
11
securityCoding 2021-01-28 17:51:31 +08:00
不合理,隐式的东西乱飞太容易出问题了
|
12
totoro52 2021-01-29 09:22:40 +08:00
同一个公司的吧? TM 公司的项目里 threadlocal 都日穿天了 恶心死了 每次都要去追溯哪里来的 哪里存进去的
|