Mou*_*ddy 26 java spring spring-mvc
我想知道Spring单例bean是否是线程安全的,如果是,那么为什么,如果不是那么为什么呢?
因为我是春天的初学者,所以请帮助.
a b*_*ver 31
不,这两个概念甚至没有关系.
单身人士是关于创造的.此设计模式确保只创建一个类的一个实例.
线程安全就是执行.引用维基百科:
如果一段代码仅以保证多个线程同时安全执行的方式操作共享数据结构,则它是线程安全的.
因此最终线程安全仅取决于代码和代码.这就是为什么Spring bean本身不是线程安全的原因.
sun*_*waj 11
我有不同的看法:Spring 单例 bean 被创建一次,并且在任何时间点只能有一个实例可用。
假设您有一个在非同步方法中修改的实例变量。在多线程环境中,同一个类实例将被分配给所有线程,并且2个并发线程可以更新/更改实例变量,这可能会导致意外情况。Singleton bean 不提供线程安全性,现在您知道实例变量的使用可能会导致意外结果,您有 2 个选项来解决相同问题:
Spring只是管理单例bean的生命周期并维护对象的单个实例。线程安全与此无关。
如果不是那么为什么?
因为单例和线程安全是两个不同的概念。您可以使用synchronized关键字来保证线程安全
| 归档时间: |
|
| 查看次数: |
45337 次 |
| 最近记录: |