SpringMVC是单例的,高并发状况下,如何保证性能的?

首先在你们的思考中,确定有影响的,你想一想,单例顾名思义:一个个排队过...  高访问量的时候,你能想象服务器的压力了... 并且用户体验也不怎么好,等待过久~html

 

实质上这种理解是错误的,Java里有个API叫作ThreadLocal,spring单例模式下用它来切换不一样线程之间的参数。用ThreadLocal是为了保证线程安全,实际上ThreadLoacal的key就是当前线程的Thread实例。单例模式下,spring把每一个线程可能存在线程安全问题的参数值放进了ThreadLocal。这样虽然是一个实例在操做,可是不一样线程下的数据互相之间都是隔离的,由于运行时建立和销毁的bean大大减小了,因此大多数场景下这种方式对内存资源的消耗较少,并且并发越高优点越明显。

spring

总的来讲就是,单利模式由于大大节省了实例的建立和销毁,有利于提升性能,而ThreadLocal用来保证线程安全性。

另外补充说一句,单例模式是spring推荐的配置,它在高并发下能极大的节省资源,提升服务抗压能力。spring IOC的bean管理器是“绝对的线程安全”。
 
http://www.cnblogs.com/doit8791/p/4093808.html
相关文章
相关标签/搜索