采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
这里的controller默认是单例的,是否说明每个request过来,开启的对应线程,都是共享这一个controller对应的成员对象?那这样的话,除了在conteoller方法中new出来的本地对象(比如数据库连接之类的)其他的controller所拥有的对象是否都要考虑线程安全的情况?
你好,如果是static域的对象,才是需要考虑线程安全问题。单独一个方法内部new出来的对象,且没有传出方法外,是不涉及线程安全问题的。
谢谢老师。但如果是controller定义的成员对象,但不是static的,这个对象传入controller方法(方法外传入进来的),是否也要考虑并发安全? 比如,这里的v是否会被并发访问? @bean Class controller { private Vector v Method(v){} }
如果这个v可能被更新,就需要考虑线程安全的,这个v像极了我们代码里的自动注入的bean,自动注入的bean因为我们不去修改,因此虽然多线程共享但并不会有线程安全问题(本质上是无状态与有状态的区别)
登录后可查看更多问答,登录/注册
构建完整并发与高并发知识体系,倍增高薪面试成功率!
1.7k 1
1.1k 18
1.1k 15
3.5k 12
1.2k 12