Volatile

本来想学习一下ConcurrentHashMap的相关知识的,但是在阅读源码的过程中发现了volatile关键字,在查询学习的过程中发现这个关键字还是挺有意思的。

一、 百度释义

    volatile是一个类型修饰符type specifier),就像大家更熟悉的const一样,它是被设计用来修饰被不同线程访问和修改的变量volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。

volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。

详见:https://baike.baidu.com/item/volatile/10606957?fr=aladdin

二、 个人理解

    没有个人理解,很难受,看的很痛苦

三、 代码示例

没有想到一个合适的展现volatile特性的代码,所以没有什么代码可以示例的,不过下面的一些博客可以好好看一下,能够大致加深对volatile的认知,这篇博客就留在这了,以后对这个有了更深的认识了,再回过头来学习,ConcurrentHashMap也留下了

四、 深度解析

参考自一篇看不太懂的博客:

http://www.cnblogs.com/dolphin0520/p/3920373.html

https://www.ibm.com/developerworks/cn/java/j-jtp06197.html

https://blog.csdn.net/u011248395/article/details/71087379