您的位置:首页 > 编程语言 > Java开发

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是安全的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息