- 博客(3)
- 收藏
- 关注
原创 java实现同步的几种手段
实现同步的几种手段关于内存可见性在jvm的内存模型中,每个线程将自己管理的变量从主内存从读取到自己的副本中,此后对这些变量的修改都是在副本中进行。至于什么时候会将副本中更新的值刷回到主内存中,这是不一定的。因此,如果没有同步,一个线程对某一共享变量进行修改后,另一线程并不知道该值变化了。原子性问题cpu会对指令进行重排序,以达到更加高效的运行速度,单线程的情况下这不会有问题,但是多线程情况下,可能会出现脏读的情况。synchronized关键字与object对象的wait()、notify()、
2020-07-18 00:10:03 251
原创 JVM学习笔记——对引用(reference)的理解
JVM学习笔记——对引用(reference)的理解结合《Java编程思想》与《深入理解JVM虚拟机》这两本书谈谈java中的引用。Object a;这便创建了Object对象的一个引用,但该引用并未与任何实例对象相关联,如果我们输出a的值,得到的结果将会是null。a = new Object;这时a才与一个Object对象关联起来。《Java编程思想》中举了一个很好的例子介绍引用:将这一场景看作是用遥控器(引用)来操纵电视机(对象)。只要拥有这个电视的遥控器,便可以对这个电视进行相关操
2020-05-25 01:49:53 413
原创 JVM学习笔记——java内存区域与内存溢出异常
JVM学习笔记——java内存区域与内存溢出异常java内存区域程序计数器Java虚拟机栈本地方法栈Java堆方法区学习《深入理解Java虚拟机:JVM高级特性与最佳实践》的笔记。java内存区域程序计数器程序计数器是一块较小的内存空间,可以看做是当前线程执行字节码的行号指示器。为保证每次线程切换过程中,都会恢复到该线程正确的位置,每条线程都需要一个程序计数器。因此,程序计数器是线程私有的。Java虚拟机栈Java虚拟机栈,虚拟接栈描述的是java方法执行的线程内存模型:每个方法被执行的时候,J
2020-05-25 00:40:42 270
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人