java 并发 之 并发安全性问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 并发 之 并发安全性问题相关的知识,希望对你有一定的参考价值。
多线程编程在提升程序性能的同时也会带来一些安全性问题,产生一下不可预知的结果。其原因在于多线程中每个线程中的操作顺序是不可预测的,对于各个线程共享的资源操作,很可能相互影响。例如统计一个页面的访问量,对一个int类型的值进行累加,每个线程接受到用户请求后就会对该int类型累加。这里就会出现安全性问题,原因在于对数据进行累加的过程并非是一个原子操作,他需要先读取现有的值,然后进行累加,最后重新设置该值。如果在a线程读取现有值后,该值被其他线程更新,那么a线程最后将设置一个错误的值。
出现安全性问题的原因在于:
多个线程访问一个共享资源,并且对该共享资源进行非原子性修改。
如何避免安全性问题:
1. 不在线程之间共享资源。
2. 共享资源为不可变资源。
3. 对共享资源访问使用同步。
以上是关于java 并发 之 并发安全性问题的主要内容,如果未能解决你的问题,请参考以下文章