SpringMvc线程问题
来源:6-2 项目接口定义-json,page

uareRight
2018-11-12
老师我之前工作springMVC用的很少 ,我知道sturts2是通过每次new 出一个新对象来保证线程安全的,那么springvc它是单例的 如何保证线程安全呢?比如登入模块 好多人都同时登入系统它是如何做到的保证线程安全
写回答
1回答
-
你好,这个问题我在并发课程里有详细章节介绍,如果你有那门课可以去看看。这个主要涉及无状态对象和有状态对象,Spring管理的大多数对象其实都是一些无状态的对象,而无状态对象不会因为多线程而导致状态被破坏。也可以说只要是无状态的对象,不管单例、多例都可以认为是线程安全的。当然了,特殊场景可以借助修改为多例、threadLocal、设计成不可变类等很多手段来保证线程安全。
对于线程安全问题,主要的点在于多个线程共用了相同的资源又同时发生修改,而spring bean虽然单例,且被多线程共享,但是你绝大部分情况都不会去修改spring bean单例的类,而只是利用他去操作别的资源,因此基本你不会在这上面遇到线程安全问题。112018-11-12
相似问题