springmvc做项目用不用使用Synchronized

电脑小童 发布于 2014/10/14 22:55
阅读 3K+
收藏 0
目前使用springmvc做项目,但是对于程序并发研究不是很深入,请问如果使用了框架springmvc还用不用Synchronized做控制,如果不使用Synchronized等,在多用户同时调用时会不会出现问题。
加载中
0
一号男嘉宾
一号男嘉宾

springmvc跟Synchronized有毛的关系。

电脑小童
电脑小童
我的意思是使用了springmvc框架在编写代码的时候是否有必要添加Synchronized防止并发带来的问题。
0
徐迎龙
徐迎龙
在写同一对象的时候,并且有稍微复杂的业务逻辑的时候可以用一下
0
分流砥柱
分流砥柱
 每个请求都是一个线程,如果不是共享资源,基本上不需要使用 Synchronized。
0
xyxo
xyxo
没必要~~因为默认情况下SpringMVC 是线程安全的。
xyxo
xyxo
回复 @电脑小童 : 多说一句,前面说得可能有歧义,不应该说默认线程安全的。而应该说成“SpringMVC默认本身无所谓线程安全不安全”SpringMVC 默认单例实际上没啥问题。只要程序猿不作死,不会出现线程安全问题的。
xyxo
xyxo
回复 @电脑小童 : 我建议看看了解一下Servlet线程问题,SpringMVC实际上就是Servlet的封装,你在写controller代码的时候,尽量使用局部变量。这就很简单的解决请求并发线程问题了。(当然,你也可以搞什么scope配置,但显然烦死。)。Servlet、SpringMVC 的线程问题都是程序猿自己搞出来的,而最常见的问题就是用了不该用的成员变量。
电脑小童
电脑小童
那是不是可以认为使用了springmvc框架,就不用考虑并发问题了。
0
Jack_Q
Jack_Q

可以看看threadlocal及springmvc的一些原理。

0
gaoalvy
gaoalvy

引用来自“分流砥柱”的评论

 每个请求都是一个线程,如果不是共享资源,基本上不需要使用 Synchronized。
正解。 关键看你使用的bean的scope, spring默认是singleton的, 这种bean在spring容器中只实例化一次, 所以多个请求(多个线程)访问这个bean的话, 如果有资源竞争(比如类成员变量), 还是需要做同步处理的。
程序员Joe
程序员Joe
回复 @电脑小童 : 木有影响
电脑小童
电脑小童
如果我的系统有静态方法,我给他赋值了,相互调用有影响吗?
返回顶部
顶部