Discuss / Java / 草草看完了

草草看完了

Topic source

🌙

#1 Created at ... [Delete] [Delete and Lock User]

等后面,回头再细看,

有些东西等阅历上来了 回头再看就简单多了

🌙

#2 Created at ... [Delete] [Delete and Lock User]

今天状态不佳,换个章节看吧

小绿这章简单呀=-=

🌙

#4 Created at ... [Delete] [Delete and Lock User]

状态不行啊,就难啊,第一次看陌生的东西

用起来,简单,理解起来也不是很难,就是实现起来,有点费劲

有点像 spring 的ioc ,不同的是 这里需要我们自己去维护,对象,还不能忘记remove

🌙

#5 Created at ... [Delete] [Delete and Lock User]

好像理解错了 这是独立线程之间传递

🌙

#6 Created at ... [Delete] [Delete and Lock User]

void processUser(user) { try { threadLocalUser.set(user); step1(); step2(); } finally { threadLocalUser.remove(); }}

step1(); step2();的作用是什么

🌙

#7 Created at ... [Delete] [Delete and Lock User]

没啥用,示例代码,就是2个方法。

感觉可以使用redis 实现这个功能,不过网上好像都是2者结合使用

springboot使用redis和ThreadLocal做单点登录_weixin_34124939的博客-CSDN博客

当多个方法同时设置 ThreadLocal 变量时,每个方法设置的值只会影响到当前线程对应的 ThreadLocal 实例,在不同线程中的设置互不影响。每个线程拥有自己的 ThreadLocal 实例,并且每个线程对应的 ThreadLocal 实例都可以存储独立的数值,因此多个方法同时设置 ThreadLocal 变量不会相互影响。

举例来说,如果线程 A 和线程 B 分别调用了不同方法设置了相同名字的 ThreadLocal 变量,这两个线程各自的设置对对方是不可见的,不会相互干扰。线程 A 设置的值只对线程 A 可见,线程 B 设置的值只对线程 B 可见。

然而,在同一个线程中,在不同方法中设置相同名字的 ThreadLocal 变量时,后面设置的值会覆盖前面的值,因为 ThreadLocal 本质上是使用当前线程作为键来存储值,相同的键会覆盖前面的值。因此,需要注意在同一个线程中不同方法之间对 ThreadLocal 变量的使用,避免意外覆盖值导致线程本地的数据混乱。

总结来说,多个方法同时设置 ThreadLocal 变量不会相互影响,但在同一个线程中需要谨慎处理,避免造成数据覆盖的问题。

对么???
这一节,确实不难。。。

难在对陌生名词的恐惧。


  • 1

Reply