程序计数器: 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类内存也称为“线程私有”的内存。正在执行java方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。如果还是Native方法,则为空。这个内存区域是唯一一个在虚拟机中没有规定任何OutOfMemo ...
分类:
其他好文 时间:
2021-07-14 18:47:45
阅读次数:
0
概述 在许多场景下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统的速度差距太大, 大量的时间都花费在磁盘I/O、网络通信或者数据库访问上。如果不希望处理器在大部分时间里都处于等待其他资源的空闲状态,就必须使用一些手段去把处理 ...
分类:
编程语言 时间:
2021-06-25 16:41:01
阅读次数:
0
内存模型的基础 内存模型的抽象结构 共享变量 堆里面的对象、数组元素,静态变量(方法区) 局部变量 不会有线程可见性的问题,不会受内存模型的影响 指令重排 编译器优化的重排序 不改变单线程语义的前提下重新安排编译的顺序 --编译器 指令级并?的重排序 现在的处理器采用的技术,多条指令重叠进行,只要两 ...
分类:
其他好文 时间:
2021-06-23 16:42:19
阅读次数:
0
当有很多对象成为垃圾时,复制可以做得很好,但是复制许多生命周期长的对象时它就变得很糟(要反复复制它们)。用于新生代 标记-整理适合生命周期长对象可以做得很好(只复制一次),但是不适合短生命的对象。用于老年代 JVM 1.2 及以后版本使用 分代垃圾收集(generational garbage co ...
分类:
其他好文 时间:
2021-06-20 18:01:11
阅读次数:
0
一、Flink内核解析,针对版本1.12.0,四大块:任务的提交流程,组件通信,任务的调度,内存管理。 任务的提交流程:以命令行的提交命令开始追踪类,20多个步骤,几十个类,数千行代码量,最后画一个PPT动图 组件通信:actor的模型,akka基本原理和实现,5大关键角色:代理转发,处理细节,PP ...
分类:
其他好文 时间:
2021-06-18 19:53:27
阅读次数:
0
并发编程-JMM&Lock锁以及原理 JMM(Java Memory Model(Java内存模型)):我们都明白java是一个一次编译多处运行的语言,然而在不同的系统架构中拥有不同的内存模型,java是一个跨平台的虚拟系统,所以他有制定了自己的内存模型,内存模型描述了程序中各个变量之间的关系,以及 ...
分类:
其他好文 时间:
2021-06-06 19:37:34
阅读次数:
0
可见性 原子性 VolatileDemo代码演示可见性+原子性代码 有序性 volatile是java虚拟机提供的轻量级的同步机制 保证了可见性 不保证原子性 禁止指令重排 JMM你谈谈 静态代码块,构造快,构造方法的执行顺序 package com.model.jvm; class One{ pu ...
分类:
编程语言 时间:
2021-06-06 19:23:25
阅读次数:
0
#引言 垃圾回收(GC,Garbage Collection) 在笔者上一篇文章中(JVM内存模型),介绍了JVM内存模型以及JVM运行时的数据区,堆是JVM内存区域里面最大的一块区域,用于存放实例数据,因此这一块区域是垃圾回收的重点区域,而堆为了提高垃圾回收效率,又被分为了年轻代和老老年,年轻代又 ...
分类:
其他好文 时间:
2021-05-24 07:35:23
阅读次数:
0
原文:C++ static_cast、dynamic_cast、const_cast和reinterpret_cast(四种类型转换运算符) < C/C++类型转换的本质(经典之作)输入输出流 > 上节讲到,隐式类型转换是安全的,显式类型转换是有风险的,C语言之所以增加强制类型转换的语法,就是为了强 ...
分类:
编程语言 时间:
2021-05-24 01:51:13
阅读次数:
0
1. 如何顺序控制goroutine 如何保证在一个 goroutine 中看到在另一个 goroutine 修改的变量的值,如果程序中修改数据时有其他 goroutine 同时读取,那么必须将读取串行化。为了串行化访问,请使用 channel 或其他同步原语,例如 sync 和 sync/atom ...
分类:
其他好文 时间:
2021-05-23 23:08:09
阅读次数:
0