Spring 中的单例 Bean 的线程安全问题了解吗?

大部分时候我们并没有在系统中使用多线程,所以很少有人会关注这个问题。单例 bean 存在线程问题,主要是因为:当多个线程操作同一个对象的时候,对这个对象的非静态成员变量的写操作会存在线程安全问题。常见的有两种解决办法:

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

  2. 在类中定义一个 ThreadLocal 成员变量,将需要的可变成员变量保存在 ThreadLocal 中(推荐的一种方式)。

发表评论

后才能评论

评论(1)

  • Grey 普通 2021-09-10 11:05 下午

    Spring应该有几个常见面试题:比如
    Spring如何解决循环依赖问题?
    Spring中用到了哪些设计模式?