前言 ZGC是一款在JDK11中新加入的具有实验性质的低延迟垃圾收集器,目前仅支持Linux/x86-64。ZGC收集器是一款基于Region内存布局的,(暂时)不设分代的,使用了读屏障、染色指针和内存多重映射等技术来实现可并发的标记-整理算法的,以低延迟为首要目标的一款垃圾收集器。 ZGC布局 与 ...
分类:
其他好文 时间:
2020-06-20 21:50:39
阅读次数:
92
A core element in Flink’s distributed snapshotting are the stream barriers. These barriers are injected into the data stream and flow with the records ...
分类:
其他好文 时间:
2020-06-20 13:41:21
阅读次数:
70
本篇文章从底层原理层面深度剖析volatile关键字是如何实现内存可见性的,同时引入了Java内存模型、指令重排序以及内存屏障等知识点作为原理分析的知识支撑。 阅读本文之前,推荐大家先阅读作者之前的一篇关于happens-before的文章,这样更有助于大家对volatile关键字底层原理的理解。 ...
分类:
其他好文 时间:
2020-06-18 19:29:06
阅读次数:
49
一、面向对象中,封装是指将抽象性函式接口的实现细节部分包装、隐藏起来的方法 1.封装可以被认为是一个屏障,防止该类的代码和数据被外部类定义的代码随机访问 2.要访问该类代码和数据需要接口控制 3.封装可以修改自己的实现代码,而不用修改调用我们代码的程序片段 4.精确控制成员变量 5.隐藏信息,实现细 ...
分类:
编程语言 时间:
2020-06-12 22:54:43
阅读次数:
105
CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续工作。 CyclicBarrier 默认的构造方法是 CyclicBar ...
分类:
其他好文 时间:
2020-06-10 13:22:17
阅读次数:
65
Checkpoint & Snapshot 检查点是Flink为流计算过程提供的容错和故障恢复机制。当程序出错时,Flink会重启受到影响的那部分算子及计算逻辑,并将它们重置到最后一次成功checkpoint时的状态。每次成功的checkpoint产生的“状态数据”其实就是这个流式计算任务在那一时刻 ...
分类:
其他好文 时间:
2020-06-07 12:38:52
阅读次数:
63
引用学习(狂神说) 谈谈你对 volatile 的理解 Volatile 是 Java 虚拟机提供的轻量级的同步机制 它的3个特性: 1、保证可见性 2、不保证原子性(原子性就是任务要么完整执行,要么都不执行) 3、禁止指令重排 深刻理解volatile的3个特性 1、保证可见性 上面代码中程序不是 ...
分类:
其他好文 时间:
2020-06-01 23:40:03
阅读次数:
70
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据,必须通过严格的接口控制。 封装最主要的功能在于我们能修改自己的实现代 ...
分类:
编程语言 时间:
2020-05-28 16:08:53
阅读次数:
68
转: 解密内存屏障(注释补充) 你真的理解“内存屏障”了吗? 为什么需要内存屏障 简介:以下虽非java内存屏障的例子,但很大具有参考对比性) 内存屏障是一种底层原语,在不同计算机架构下有不同的实现细节。本文主要在x86_64处理器下,通过Linux及其内核代码来分析和使用内存屏障 对大多数应用层开 ...
分类:
其他好文 时间:
2020-05-16 20:36:33
阅读次数:
68
根据该文章整理 https://blog.csdn.net/myxmu/article/details/80350251 解决的问题内存屏障主要解决了单处理器下的乱序问题和多处理器下的内存同步问题。2 为什么会乱序现在的CPU一般采用流水线来执行指令。一个指令的执行被分成:取指、译码、访存、执行、写 ...
分类:
系统相关 时间:
2020-05-14 19:20:42
阅读次数:
75