月度归档: 2024 年 10 月

12 篇文章

thumbnail
一文了解AQS
前置知识(LockSupport) 简介 LockSupport是用来创建锁和其他同步工具类的基本线程阻塞原语。java锁和同步器框架的核心 AQS: AbstractQueuedSynchronizer,就是通过调用 LockSupport .park()和 LockSupport .unpark()实现线程的阻塞和唤醒 的。 LockSuppo…
thumbnail
一文了解ThreadLocal
简介 ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,…
thumbnail
Redis缓存穿透,击穿,雪崩+布隆过滤器原理
概述  (1)缓存穿透(Cache Penetration):指查询一个不存在的数据,由于缓存中没有数据, 所以这个查询请求会直接穿过缓存层,到达数据库层,造成了数据库的压力。 攻击者可以通过构造恶意请求,使得缓存层无法命中任何数据, 从而导致请求直接访问数据库,从而引起数据库压力过大。 (2)缓存击穿(Cache Breakdown):指缓存中某…
thumbnail
一文了解分布式锁
概述 分布式锁的CAP理论 在一个分布式系统,最多只能满足一下三项中的两项 一致性(Consistency):在分布式系统中的所有数据备份,在同一时刻是否同样的值(等同于所有节点访问同一份最新的数据副本) 可用性(Availability):保证每个请求不管成功或者失败都有响应 分区容错性(Partition tolerance):系统中任意信息的…
thumbnail
一文了解MySql锁机制
表级锁,行级锁,页级锁 MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定、页级锁定。 1.1 表级锁 表级别的锁定是 MySQL 各存储引擎中最大颗粒度的锁定机制。该锁定机制最大的特点是实现逻辑非常简单,带来的系统负面影响最小。所以获取锁和释放锁的速度很快。 当然,锁定颗粒度大所带来最大的负面影响就是出现锁定资源争用的概率也…
thumbnail
一文了解JAVA锁机制
乐观锁和悲观锁 乐观和悲观的定义是对于数据冲突的态度,乐观锁乐观地认为并发不会造成数据冲突,悲观锁悲观的认为并发一定会造成数据冲突。 乐观锁 乐观地认为并发访问不会造成数据冲突,只在更新时检查是否有冲突。乐观锁和CAS的关系可以用“乐观锁是一种思想,CAS是一种具体的实现”来理解。 当使用CAS操作修改数据时,如果版本号不匹配或者其他线程已经修改了…
一文了解VueX
定义  vuex官方解释 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 个人理解: vuex就是一个vue内部的一个容器,他定义了要存储哪些数据,给出这些数据的操作方法,供其他的组件调用,很像一个类。 什么时候使用VueX Vue…
thumbnail
一文了解消息队列
定义 消息队列(MQ)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。 个人理解就像一个存储消息的数据库,类似图床这样,为了解决平台主体的负载问题,将压力分担到其它系统 消息队列的组成 Broker作为server提供核心服务 Producer消息生产者,业务的发起方,负责生产消息传输给broker C…
thumbnail
JAVA中的四种引用
概述 在 Java 中,对象的引用类型对于理解如何引用对象以及对象如何与垃圾回收器(GC)一起工作非常重要。Java 提供了四种不同的引用类型:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。下面,我们将探讨每种类型的特点,并通…
thumbnail
一文理解JVM直接内存
概述 直接内存(Direct Memory)是在Java中使用较为底层的内存管理方式,它通过Java的NIO包中的ByteBuffer类来实现,让Java能够在堆外分配内存。这种方式通常用于需要大量、频繁的IO操作的场景,因为它可以减少在Java堆和本地堆之间复制数据的次数,从而提高性能。以下是关于直接内存的一些分析和代码示例。 不用直接内存 使用…