关于并发、并发安全、线程通信的浅谈 (Loading······)


关于并发、并发安全、线程通信的浅谈 该笔记将会从并发的基础概念、Java中线程实现和管理、线程安全(JVM级别上下文切换线程安全、变量级别线程安全、代码块级别线程安全、分布式服务并发安全)、常见的线程优化进行介绍。笔记本身会比较长,阅读前请注意。 之前一直没有时间写,空窗期找了时间开始写该长篇,目前

JVM及扩展内容介绍


JVM 总的来说,其实JVM包含有JVM内存模型-运行时数据区(Runtime Data Area)、类加载器(ClassLoader)、执行引擎(Execution Enginee)、本地接口(Native Interface)、本地库(Native Libararies) 介绍JVM的时候,其实

GC回收器深入深出


垃圾回收的困境 在早期的JVM回收之中,为了避免出现应该回收的对象没有被回收,不应该被回收的对象(重新被引用)被回收了的情况,往往整个垃圾回收都需要跑在安全点下,也就是所谓的SafePiont。而想要出现所谓的SafePoint出现,那么整个程序本身不能做任何操作,那么这个时间点对于程序来说就好像时

多线程使用 - Async+CompletableFuture


多线程 Async @Async(value = “指定自定义Bean线程池”) [根据不同的业务可以使用不同的线程池来做异步处理] 如果不指明使用的线程池,在SpringBoot 2.1.0之前默认使用的是SimpleAsyncTaskExecutor [一次性的异步执行器] 会随着请求数量的增加

常见的设计模式


概述 本笔记主要记载笔者自身比较常见的设计模式。如果要查其他的请自行跳转搜索引擎。 该笔记目前包含以下设计模式的介绍: 创建型的:单例、原型、工厂(简单工厂、工厂方法、抽象工厂) 结构性的:代理、外观 行为型的:责任链、迭代器、模板、策略 创建型模式 单例模式 单例模式的核心是保证在程序之中唯一的创

枚举类


概述 枚举类就是Java之中一种特殊的类,它具有固定的实例数量,在编译阶段就已经固定,而无法在运行阶段改变的类,并且枚举类往往会只具有一些固定的取值,所以往往很适合充当状态码类型的类。然而因为枚举类的特殊性,所以枚举类除了以上的描述以外还在单例模式的创建下有着重要的作用(最好的单例模式实现方法) 解

指令重排


指令重排 概述 简单的来说就是,出于硬件执行效率方面的考虑,为了进一步提升软件的执行效率,使其更快的将我们的程序执行完毕,除了我们自身代码的编写以外,在执行之前还会将我们程序之中的执行重新打散,将不需要注意数据依赖之间的代码的执行顺序重新打乱(以结果最快的方式来执行),而也因此会导致我们的程序执行和

Optional的使用


Optional判空 首先需要记住Optional的一些方法 第一批方法:产生Optional对象的方法empty()、of(obj)、ofNullable(obj) empty() 创建一个空的Optional (如果是空) Optional <Object> empty = Optional.e

SkipList-跳表


跳表 SkipList 为什么会有跳表结构? 我们都知道实际上在做AVL(平衡二叉树)为了要保证平衡的效果往往会需要将树结构不断的做调整 (左旋、右旋等等,当然我们还知道这衍生出红黑树这种较高明的妥协产物),这种调整如果不遵循值递增等特殊的处理,往往会消耗大量的资源来做调整保证平衡效果维持log₂N