编写线程安全需要关心的:
共享的变量
可变的变量
共享意味着多个线程可以同时访问,,可变意味着其值在生命周期可以改变。
}
有4种方式可以修复这个问题:
1.不在线程中共享该状态变量,可以将变量封装到方法中(无状态的对象一定是线程安全的);因为方法中变量是每个线程独占的,不和其它线程共享。比如:
}
2.将状态变量修改为不可变的变量。
3.在访问状态变量使用同步策略。
4.使用原子变量类。
private AtomicInteger count;public void increase() {count.getAndAdd(1);}
世界没有永久的冬天;不要讨厌麻烦,