码迷,mamicode.com
首页 > 编程语言 > 详细

java 并发 之 并发安全性问题(1)

时间:2017-06-06 18:46:32      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:之间   需要   bsp   提升   其他   共享   访问量   color   影响   

多线程编程在提升程序性能的同时也会带来一些安全性问题,产生一下不可预知的结果。其原因在于多线程中每个线程中的操作顺序是不可预测的,对于各个线程共享的资源操作,很可能相互影响。例如统计一个页面的访问量,对一个int类型的值进行累加,每个线程接受到用户请求后就会对该int类型累加。这里就会出现安全性问题,原因在于对数据进行累加的过程并非是一个原子操作,他需要先读取现有的值,然后进行累加,最后重新设置该值。如果在a线程读取现有值后,该值被其他线程更新,那么a线程最后将设置一个错误的值。

出现安全性问题的原因在于:

多个线程访问一个共享资源,并且对该共享资源进行非原子性修改

如何避免安全性问题:

1. 不在线程之间共享资源。

2. 共享资源为不可变资源。

3. 对共享资源访问使用同步。

 

java 并发 之 并发安全性问题(1)

标签:之间   需要   bsp   提升   其他   共享   访问量   color   影响   

原文地址:http://www.cnblogs.com/zhangwanhua/p/6952537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!