java中的多线程安全问题
2016-02-21 22:36
309 查看
关于多线程安全问题,简单说一下
两个概念
多线程:多个方法在同一时间并行
并发访问:多个线程在同一个时间点访问同一个资源
线程安全问题产生的原因:
* 需要确定以下几个问题:
* 1.是否是多线程环境
* 2.是否有共享数据
* 3.是否有多条语句操作共享数据
前两条满足,基本就有线程安全问题了.
1.类中有成员变量,容易被多个线程竞争.导致产生安全问题,因为
spring的单利模式思考
1.controller的创建是spring的Ioc管理的,单利,每个用户访问都会为其创建一个对象,一个人有一个.互不冲突.
2.如果controller里有成员变量.可能产生线程安全问题,所以不建议使用成员变量,如果使用请考虑同步(和servlet一样).但是我们一般在controller中只是定义Service,在Service中定义dao但是它俩都让spring管理.都是单利.所以避免了线程安全问题
3.如果使用注解的方式开发,注解直接找到方法,访问的时候也是,所以都是局部变量,不会产生安全问题
4..事务机制有效降低了安全问题.数据库本身的事务支持,避免了多线程同时操作同一数据.
所以springmvc是安全的
两个概念
多线程:多个方法在同一时间并行
并发访问:多个线程在同一个时间点访问同一个资源
线程安全问题产生的原因:
* 需要确定以下几个问题:
* 1.是否是多线程环境
* 2.是否有共享数据
* 3.是否有多条语句操作共享数据
前两条满足,基本就有线程安全问题了.
1.类中有成员变量,容易被多个线程竞争.导致产生安全问题,因为
spring的单利模式思考
1.controller的创建是spring的Ioc管理的,单利,每个用户访问都会为其创建一个对象,一个人有一个.互不冲突.
2.如果controller里有成员变量.可能产生线程安全问题,所以不建议使用成员变量,如果使用请考虑同步(和servlet一样).但是我们一般在controller中只是定义Service,在Service中定义dao但是它俩都让spring管理.都是单利.所以避免了线程安全问题
3.如果使用注解的方式开发,注解直接找到方法,访问的时候也是,所以都是局部变量,不会产生安全问题
4..事务机制有效降低了安全问题.数据库本身的事务支持,避免了多线程同时操作同一数据.
所以springmvc是安全的
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- Python3写爬虫(四)多线程实现数据爬取
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序