标签:之间 需要 bsp 提升 其他 共享 访问量 color 影响
多线程编程在提升程序性能的同时也会带来一些安全性问题,产生一下不可预知的结果。其原因在于多线程中每个线程中的操作顺序是不可预测的,对于各个线程共享的资源操作,很可能相互影响。例如统计一个页面的访问量,对一个int类型的值进行累加,每个线程接受到用户请求后就会对该int类型累加。这里就会出现安全性问题,原因在于对数据进行累加的过程并非是一个原子操作,他需要先读取现有的值,然后进行累加,最后重新设置该值。如果在a线程读取现有值后,该值被其他线程更新,那么a线程最后将设置一个错误的值。
出现安全性问题的原因在于:
多个线程访问一个共享资源,并且对该共享资源进行非原子性修改。
如何避免安全性问题:
1. 不在线程之间共享资源。
2. 共享资源为不可变资源。
3. 对共享资源访问使用同步。
标签:之间 需要 bsp 提升 其他 共享 访问量 color 影响
原文地址:http://www.cnblogs.com/zhangwanhua/p/6952537.html