当前位置: 首页 > 图灵资讯 > java面试题> javaspring面试题-Bean作用域

javaspring面试题-Bean作用域

来源:图灵教育
时间:2024-05-21 13:38:50

 

默认作用域是singleton,多个线程访问同一个bean时会存在线程不安全问题

保障线程安全方法:

1、在Bean对象中尽量避免定义可变的成员变量(不太现实);

2、在类中定义⼀个ThreadLocal成员变量,将需要的可变成员变量保存在 ThreadLocal 中;

ThreadLocal:

每个线程中都有一个自己的ThreadLocalMap类对象,可以将线程自己的对象保持到其中,各管各的,线程可以正确的访问到自己的对象。

将一个共用的ThreadLocal静态实例作为key,将不同对象的引用保存到不同线程的ThreadLocalMap中,然后在线程执行的各处通过这个静态ThreadLocal实例的get()方法取得自己线程保存的那个对象,避免了将这个对象作为参数传递的麻烦。