[TOC]

SpringMVC保证Cotroller并发安全

SpringMVC 如何保证我们并发安全的呢?

什么是并发安全

多个线程访问统一资源,不会出现数据污染的情况,称之为并发安全。

简单的说,在一个线程完成操作之前,别的线程不会影响当前线程所访问的资源

Spring的Controller

Spring的Cotroller 和 Service默认都是单例模式,我们可以简单粗暴的解决并发问题。

设置Scope为prototype 这样每次访问都会创建一个新的Cotroller。

解决方案

想了想,我们可以直接使用ThreadLocal 进行存储我们的临界资源。ThreadLocal会以我们当前线程为副本进行存储数据。每一个线程创建一个新的变量,这样就不会存在临界资源了。

当然,也可以采用锁来解决,但是使用锁的话效率就会变得非常低。

Comments


享受技术带来的乐趣。