spring singleton bean 对于多个客户端同时调用单个方法的行为如何?
通过 spring 文档,我发现默认情况下 spring bean 是单例的。如果 spring 有一个 doSomethingMethod() { ... } 并且该方法同时被多个客户端调用,它们会共享函数中使用的相同值吗?
By spring docs I found by default spring beans are singletons. How will spring behave if it has a doSomethingMethod() { ... } and this method is being called by multiple clients at same time, will they share the same values being used in the function?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这仅取决于豆子本身。不要求 bean 是线程安全的、无状态的等。如果 bean 不是线程安全的,那么当然会导致数据竞争。
参见:
如果多个线程尝试,会发生什么情况访问单例对象
不是完全重复,因为我们在这里讨论的单例的含义略有不同,但适用相同的想法。
It just depends on the bean itself. There is no requirement that the bean be threadsafe, stateless, etc. If the bean isn't threadsafe, then sure, data races can result.
See also:
what happens if more than one thread tries to access singleton object
Not an exact duplicate since we're talking about slightly different senses of singleton here, but the same ideas apply.