本来想学习一下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