Java 中的线程安全与线程同步
1.为什么需要线程同步
什么是线程安全:指在被多个线程访问时,程序可以持续进行正确的处理。
1.1.线程安全问题
案例:通过抢优惠例子说明线程安全问题
public class Demo1 {
public static void main(String[] args) {
// 简单模拟 20 人抢优惠
for(int i=0;i
执行结果:出现的问题
同一个优惠号码可能被多次获取到;
优惠号码可能获取到 0 和负数,类似超买超卖
并发访问线程不安全的共享变量时,会出现如上的常见问题。
避免问题的产生
共享变量设计为不可变的(final)
编程过程不修改共享变量(不修改)
将对象设计为无状态的(无状态)
在修改共享变量时使用线程同步(通过锁实现)
2.怎么实现线程同步
线程同步是指程序中用于控制不同线程间操作发生相对顺序的机制。
评论0
最新资源