2023-04-08并发-Java并发机制的底层实现原理并发 学习volatile它在多处理器开发中保证了共享变量的“可见性”。 可见性的意思是当一个线程修改一个共享变量时,另一个线程可以读到这个修改的值。 volatile比synchronized的使用和执行成本更低,因为它不会引起线程上下文切换和调度
2023-04-02并发-并发编程的挑战并发 学习同步VS异步同步和异步用来形容一次方法调用。 同步:同步方法调用一开始,调用者必须等待被调用的方法结束后,调用者后面的代码才能执行。 异步:异步调用指的是,调用者不管被调用的方法是否完成,都会继续执行后面的代码,当被调用的方法完成后会通知调
2023-03-26JUC-共享模型之内存并发 学习JMM体现在以下几个方面原子性-保证指令不会受到线程上下文切换的影响 可见性-保证指令不会受cpu缓存的影响 有序性-保证指令不会受cpu指令并行优化的影响 可见性:12345678910111213141516@Slf4j(topic =
2023-03-01JVM-垃圾回收算法JVM 学习判断对象已死:1、引用计数算法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加一,当引用失效时,计数器就减一。任何时刻计数器为零的对象就是不可能再被使用的。 优缺点: 占用了一些额外的内存空间来计数,但它的原理简单,判定效率也
2023-02-24JVM-Java内存区域JVM 学习运行时数据区:程序计数器:当前线程所执行的字节码指令的行号指示器。在Java虚拟机的概念模型里,字节码解释器的工作就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等
2022-11-20PC寄存器JVM 学习使用PC寄存器存储字节码指令地址有什么用呢?为什么使用PC寄存器记原当前线程的执行地址呢?因为CPU需要不停的切换各个线程,这时候切换回来以后,就得知道接着从哪开始继续执行。JVM的字节码解释器就需要通过改变PC寄存器的值来明确下一条应该执