问题描述
- SpringMVC 多线程并发
- SpringMVC的Controller默认是单例的,我现在由一个最大的疑问就是多线程并发的
时候,我们如何保证的数据安全性呢。由于Controller默认是单例的,Controller中的
方法也是单例的,我们如何保证一个user不会被另外一个User覆盖呢???求大神帮忙了。
就像上面这个保存用户的操作,两个请求同时过来,一个user会不会被另外一个user覆盖呢???我百度说,只要不在Controller定义属性就不会安全问题啊????
来个大神帮忙理理思路啊。
解决方案
你这个方法是线程安全的,不会有问题。
一个user不会被另外一个user覆盖。因为:2个请求同时过来的时候,每个请求都会new一个user对象,他们各自用自己user对象,互相不受干扰。
解决方案二:
外部提供线程的同步:
可以通过关键字
synchronizd (obj){// obj 是所对象,只有获得 锁对象 的线程才会进入这个代码段 ,但是要注意的是确保所对象的唯一
// code
}
时间: 2024-10-30 06:59:00