java
文章平均质量分 77
双木有兮木有辛
有点经验的后端程序员。在阿里、腾讯、虎牙都摸过鱼。欢迎交流
展开
-
volatile关键字用法以及线程数据可见性的问题
最近在研究ConcurrentHashMap的源代码的时候,发现底层实现的Segments使用到了关键字volatile不太明白这个关键字的用法,查了一些资料总结如下: volatile 的作用是让变量在多个线程可见。 说实话这个定义也有点笼统,既然看源码了肯定是想知道具体是怎么让多线程可见的。实际上Java里每个线程工作的时候,都会有自己的一个线程私有工作内存,里面存放着只有本线程可见的变量,原创 2017-05-24 10:10:55 · 924 阅读 · 0 评论 -
从0到1了解JVM基本原理(一):Java内存区域
Java虚拟机强大的功能与特性隐藏了底层技术的复杂性,让程序员可以把精力主要集中在业务开发上。然而凡事都有两面性,当程序规模越来越大,提升硬件资源无法有效提升程序运作力时,可能比较省时省力的方法就是进行程序调优, 从另一个层面来说,如果程序员不是很了解虚拟机的特性以及运行原理,就无法写出适合虚拟机运行的优质代码。运行时区域JVM在运行时会将可使用的内存分成几个区域,了解这几个区域的功能对于理解JV原创 2017-11-14 09:48:49 · 245 阅读 · 0 评论