推荐:
https://www.cnblogs.com/kubidemanong/p/9505944.html
https://www.cnblogs.com/kubidemanong/p/9520071.html
对于线程安全问题有疑问的朋友推荐看一下前文,这篇博客有相当详细的解释;
这个哥们儿比较调皮,写完上和中,我居然没有找到下。大家将就看看吧。
这里对于面试官的问题回答:
- volatile 是一个类型修饰符,volatile 作为关键字是因为编译而省略。
- 线程可见性:不同线程对值操作的时候,其他线程是可见的。也就是说,多个线程同时操作某值的时候,某个线程操作了该值,其他线程是知道的。在其他线程计算的时候会加载新的值;
- 有序性:禁止进行指令重排序。
- 不能保证线程安全;如果需要保证线程安全的话,需要保证单一线程修改变量值;