🍑一. JUC包(java.util.concurrent)下的常见类 juc包下的所有类都是提供多线程并发编程用的,不仅满足线程安全而且效率也很高 ReentranLock是可重入锁,具体用法: Lock lock = new ReentrantLock(); tr
本文介绍了一种基于线上流量实现对重构系统进行功能和性能验证的实践方案。针对线上流量如何拦截、如何录制、如何存储、如何回放以及如何发压均作了详细说明,为具有类似需求的读者提供了一种可供参考的思路。 1 业务背景 随着百川项目的启动,中台需要对订单流量收口,将ECLP、各BP的接单入口全部切换至百川统一
工程依赖 我们需要使用 @Async 注解来说明 Spring AOP 的原理,@Async 注解在 spring-context 工程下,引入其依赖。 org.springframework spring-context Spring Bean 的 this Configur
分布式事务简介 本地事务 大多数场景下,我们应用只需要操作单一数据库,这种情况下的事务称为本地事务,本地事务的ACID特性是数据库直接提供支持,架构如下: 分布式事务 在微服务架构中,完成某一个业务功能可能需要横跨多个服务,操作多个数据库,这就涉及到分布式事务。需要操作的资源位于多个资源服务器上,
问题 GC是java应用性能的一大杀手,今天我们探讨一个问题,1百万对象的分配会不会使JVM暂停秒级别。 背景 先简单学习一下OpenJDK现有的GC。 黄色的图表示这是Stop-The-World(简称STW)的GC,绿色的图表示这是并发(concurrent),不会导致STW的GC。 测试 测
基本介绍 Mutex(互斥锁) 属于悲观锁,是 Go 标准库中sync中提供的一种用于控制多个 goroutine 之间对共享资源的并发访问的机制,通常用于避免多个协程同时访问共享数据,以防止竞态条件和数据竞争问题的发生。 同时 sync.Mutex 是一个不可重入锁,不会记录哪个 goroutin
前言 Hudi 系列文章在这个这里查看 github.com/leosanqing/… 索引(Index)是 Hudi 最重要的特性之一,也是区别于之前传统数仓 Hive 的重要特点, 是实现 Time Travel, Update/Delete,事务 等重要特性的基础 Hudi provides
前言 项目里存在一个这样的系统,它的主要功能类似于适配器,将一个系统的异构数据进行转化,处理成标准的数据流,交给另一个平台系统。 当然,也可以反过来理解,有一个平台级系统,需要从多种数据源(系统)中采集数据,每种数据源的数据结构都不相同,需要有个中间人进行转化。这个系统就承担了这样的角色。 这样的
前言归并排序是一种常见的排序算法,它采用分治法的思想,在排序过程中不断将待排序序列分割成更小的子序列,直到每个子序列中只剩下一个元素,然后将这些子序列两两合并排序,最终得到一个有序的序列。归并排序实现原理将待排序序列分割成两个子序列,直到每个子序列中只有一个元素。将相邻的两个子序列合并,并按照大小顺
王有志,一个分享硬核 Java 技术的互金摸鱼侠加入 Java 人的提桶跑路群:共同富裕的Java人 今天是《面霸的自我修养》第 6 篇文章,我们一起来看看面试中会问到哪些关于线程池的问题吧。 数据来源: 大部分来自于各机构(Java 之父,Java 继父,某灵,某泡,某客)以及各博主整理文档;
本次主要聊聊 Go 语言中关于 panic 和 recover 搭配使用 ,以及 panic 的基本原理最近工作中审查代码的时候发现一段代码,类似于如下这样,将 recover 放到一个子协程里面,期望去捕获主协程的程序异常图片看到此处,是否会想这段代码在项目中是想当然写出来的吧,然而平日中,大多问
正文 doCreateBean() 主要用于完成 bean 的创建和初始化工作,我们可以将其分为四个过程: 最全面的Java面试网站 createBeanInstance() 实例化 bean populateBean() 属性填充 循环依赖的处理 initializeBean() 初始化 b
一、前言我们在项目中会处理敏感数据(如手机号、身份证号、姓名、地址等)时,通常需要对这些数据进行脱敏,以确保数据隐私和安全。我们本次使用 Hutool 库来轻松实现数据脱敏,如果项目中不让使用,可以自己防着hutool来写一些工具类。本次使用Springboot整合Hutool来自定义注解实现数据脱
在过去的几年里,随着远程办公的迅速普及,在线文档已经成为了人们工作生活中不可或缺的一部分。在线文档允许用户在互联网上实时协作和共享文档,使得办公不再受地理限制,提高了工作效率。在这篇文章中,我们将探讨在线文档的一大关键技术协同算法,本文将从解决方法,优劣对比,重点算法原理等方面进行详细的讲解。 冲突
大家好,我是前端西瓜哥。之前写了一篇 PixiJS 绘制矩形,简单说了一下 PixiJS 是怎么绘制矩形的。《PixiJS 源码解读:绘制矩形,底层都做了什么?》它更多的讲解上层的东西,没花太多笔墨描绘底层渲染的流程。所以我写了这篇文章,对渲染流程进行补充讲解。PixiJS 版本为 7.2.4。要求
分布式是现在的比较主流的技术,常常和微服务一起出现。那么对于多个实例之间,如何证分布式系统中多个进程或线程同步访问共享资源呢?我们其实一想到的就是锁,我们在java里边有 synchronized, 在python里有lock,但是这个只能到证在单机的时候不会出现线程安全问题,但是在分布式的环境下,
简介Java 提供了用于管理和操作数据的接口。这称为 Java 集合框架 (JCF)。由于它根据要存储和管理的数据的类型和特征提供各种形式和实现,让我们根据需要的情况应用和使用它。JCFJCF是指一个数据集接口框架,它统称为 Collection 和 Map 接口。一组数据被定义为 Collecti
引子 在使用Type Script + NodeJs作为技术栈开发一个后端service过程中(其实重头戏是fp-ts,但它和今天的主题无关),遇到一个有些有趣的小问题,遂记录如下。 需求很简单:用ts的type字段去定义一个domain modal(建模);后续在json序列化以后直接在endpo
如何回答什么是CAS?CAS是Compare And Swap的简称,单从字面理解是比较并替换,实际指的是Unsafe类中的三个方法compareAndSwapObject,compareAndSwapInt,compareAndSwapLong,三个方法分别是以比较并替换的方式对Object类型的
Go 复合类型之切片类型 [TOC] 一、引入 我们在上一个节Go复合类型之数组类型提到过,数组作为最基本同构类型在 Go 语言中被保留了下来,但数组在使用上确有两点不足:固定的元素个数,以及传值机制下导致的开销较大。于是 Go 设计者们又引入了另外一种同构复合类型:切片(slice),来弥补数组