自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 问答 (5)
  • 收藏
  • 关注

原创 CopyOnWrite

Redis和Java的CopyOnWriteArrayList都采用了COW(Copy-on-Write)机制,但实现方式和目的不同。Redis主要利用操作系统的fork()和COW实现RDB持久化和主从复制,通过内存页级的延迟复制保证数据一致性;而Java的CopyOnWriteArrayList在语言层面实现数组复制,确保并发安全。两者都体现了COW的核心思想:以写操作性能为代价换取读操作的高效和安全。Redis巧妙地借助系统级COW机制,使其持久化和复制功能既高效又优雅。

2025-09-14 16:00:00 735 1

原创 JUC 并发编程-StampedLock

读写锁ReentrantReadWriteLock』并不是真正意义上的读写分离,它只允许读读共存,而读写和写写依然是互斥的,大多实际场景是“读/读”线程间并不存在互斥关系,只有"读/写"线程或"写/写"线程间的操作需要互斥的。因此引入 ReentrantReadWriteLock。一个 ReentrantReadWriteLock 同时只能存在一个写锁但是可以存在多个读锁,但不能同时存在写锁和读锁, 也即一个资源可以被多个读操作访问或一个写操作访问,但两者不能同时进行。

2025-09-12 14:15:00 1687

原创 Java CAS

CAS(比较并交换)是一种并发技术,通过硬件保证原子性操作。它包含三个参数:内存位置、预期值和更新值。当内存值与预期值匹配时,更新值才会被写入,否则操作失败。Java中的Unsafe类提供了CAS底层实现,基于CPU指令cmpxchg完成原子操作。相比synchronized,CAS非阻塞且效率更高,适用于多线程场景。AtomicInteger等原子类通过CAS+volatile保证线程安全,如getAndIncrement()方法避免i++的线程不安全问题。自旋锁借鉴CAS思想,线程通过循环尝试获取锁而非

2025-09-11 09:06:08 1003

原创 Java volatile 关键字

摘要: volatile关键字通过内存屏障指令保证了变量的可见性和有序性,但不保证原子性。其内存语义包括:写操作直接刷新到主内存,读操作直接从主内存读取。JVM通过插入四种内存屏障(StoreStore、StoreLoad、LoadLoad、LoadStore)禁止指令重排序,确保多线程环境下的操作顺序。volatile适用于状态标志、低开销读写等场景,但复合操作(如i++)需配合synchronized或原子类实现原子性。

2025-09-10 15:51:15 979 1

原创 Java内存模型 JMM 看这一篇就够了

本文摘要: Java内存模型(JMM)是抽象规范,定义了多线程环境下变量访问规则,围绕原子性、可见性和有序性展开。计算机存储体系从磁盘到CPU缓存存在速度差异,JMM屏蔽硬件差异保证跨平台一致性。线程操作变量需通过工作内存(主内存副本)进行,不能直接读写主内存。JMM通过happens-before原则解决并发操作顺序问题,包含8条具体规则如次序规则、锁定规则等。这些规则避免显式使用volatile/synchronized,简化了并发编程,确保线程安全性和执行结果正确性。

2025-09-10 10:03:01 1086 1

原创 LookSupport与线程中断

如何优雅地停止运行中的线程 Java线程中断机制是一种协作式停止线程的方式,通过设置中断标志位而非强制终止。主要方法包括: 中断机制:通过调用线程的interrupt()方法设置中断标志位,需要线程自身检查标志位并处理中断逻辑。Thread.stop等方法已被废弃。 实现方式: 使用volatile变量作为中断标志 使用AtomicBoolean作为中断标志 通过Thread类的isInterrupted()方法检查中断状态 注意事项: 调用interrupt()不会立即停止线程,只是设置标志位 阻塞状态下

2025-09-10 09:45:30 672

原创 JUC 并发编程-基础

本文主要介绍了Java多线程中锁的使用以及Callable和Future接口。 在锁的部分,通过示例代码演示了synchronized关键字在不同场景下的表现,得出以下结论: 非静态同步方法使用同一把锁(当前对象) 静态同步方法使用类对象作为锁 普通方法与同步锁无关 不同实例对象的非静态同步方法使用不同锁 在Callable和Future接口部分,说明了: Callable接口允许线程返回结果,而Runnable不能 Future接口用于获取异步任务的结果 FutureTask结合了Runnable和Fut

2025-09-08 09:05:01 964 1

原创 Java 中的锁

摘要 本文系统介绍了Java中的锁机制,涵盖乐观锁与悲观锁的区别(CAS算法实现乐观锁)、公平锁与非公平锁的底层原理(基于AQS实现)及适用场景、可重入锁的实现机制(synchronized通过计数器实现,ReentrantLock基于AQS状态管理)。重点分析了ReentrantLock的可重入性实现,包括锁获取/释放流程和线程所有权检查。此外还提及读写锁和自旋锁的概念。文章通过源码解析和流程图,深入阐释了各类锁的设计思想与实现细节,为开发者合理选择锁策略提供了理论依据。

2025-09-07 19:47:09 1662

原创 Java并发机制的底层实现原理

Java并发机制的底层实现依赖于JVM和CPU指令。volatile通过添加特殊汇编指令保证可见性和有序性,触发缓存一致性协议使其他CPU缓存失效。synchronized基于Monitor对象实现同步锁。原子操作通过总线锁定或缓存锁定保证,最新处理器支持缓存行锁定优化性能。Java通过循环CAS和锁机制实现原子性,利用处理器提供的底层并发支持。

2025-09-06 20:10:45 851

原创 InnoDB存储引擎-事务

事务可由一条简单的SQL语句组成,也可以由一组复杂的SQL语句组成. 事务是访问并更新数据库中各种数据项的一个程序执行单元. 在事务中的操作, 要么都做修改, 要么都不做.

2025-09-03 15:44:19 1039

原创 InnoDB存储引擎-索引与算法

本文介绍了InnoDB存储引擎的主要索引类型及其特性。重点分析了B+树索引的实现原理,包括聚集索引(主键索引)和辅助索引(非聚集索引)的结构差异,以及联合索引、覆盖索引等优化技术。特别讲解了索引下推(ICP)的工作原理及其在查询优化中的作用,指出其通过提前过滤索引列条件来减少回表操作。此外,文章还简要提及Cardinality值、哈希算法和全文检索等概念,为理解InnoDB索引机制提供了全面参考。

2025-09-02 09:49:02 1636 1

原创 InnoDB存储引擎-核心特性

InnoDB是MySQL5.5.8后的默认存储引擎,完全支持ACID事务,具有行锁、MVCC、外键等特性。其核心特性包括:1)Checkpoint技术缩短恢复时间,管理脏页刷新;2)Insert Buffer提升非唯一辅助索引的插入性能;3)Double Write机制防止部分页失效;4)自适应哈希索引自动优化热点查询;5)异步IO提升磁盘操作效率。这些特性使InnoDB成为高性能、高可靠性的存储引擎,支持800次/秒的插入更新操作。

2025-09-01 14:45:50 1273

原创 MySQL 体系结构

MySQL体系结构分为客户端、服务器层、存储引擎层和存储层。客户端通过TCP连接与服务器通信,服务器层包含连接管理、SQL解析、优化器和查询缓存等组件。存储引擎层负责数据存取,支持多种引擎如InnoDB和MyISAM。查询流程包括连接建立、SQL解析、优化生成执行计划,最终由存储引擎执行并返回结果。MySQL 8.0移除了查询缓存功能,因其命中率低且易失效。整个架构通过分层设计实现高效的数据管理和查询处理。

2025-09-01 11:10:08 1000

原创 重磅!“能读一半就是赚到”的神作《编码》第2版来了

《编码:隐匿在计算机软硬件背后的语言(原书第2版)》

2025-08-14 15:12:37 2962 3

原创 3 分钟打造AI 智能体,《Manus极简入门》让你一键开启高效生活工作模式!

在科技飞速发展的当下,人工智能已逐渐渗透到生活的方方面面,深刻改变着我们的生活与工作模式。今天,为大家带来一本极具价值的书籍——《Manus极简入门:从0到1快速打造你的AI智能体》,它将成为你探索AI世界的得力指南。

2025-03-27 08:56:33 1139 2

原创 爆火的DeepSeek提示词技巧大公开!这7招让你事半功倍

本文详细探讨了DeepSeek的7大提示词技巧,从基础方法到高级策略,帮助你全面掌握这一强大语言模型的使用之道。无论是提升工作效率,还是探索AI创作的无限可能,这些技巧都能为你提供有力支持。随着技术的不断进步,DeepSeek还将带来更多可能性,让我们一起期待并持续探索吧!推荐语:《高效使用DeepSeek》是一本既适合个人,又适合企业的DeepSeek保姆级教程。

2025-03-04 11:07:54 4285 4

原创 深度分析 To B企业决策的5种困境

一本以To B业务为切入点,从方法和实践两个角度探讨企业管理者如何才能做出高质量的决策,从而带领企业持续良性发展的著作。30余种经典决策模型分析,50余个真实决策案例拆解,80余位企业家和高管采访,系统总结决策的方法论、工具和模板。作者在TO B行业25年业务经验、15年高管经验总结,29位学者、企业家和高管联袂推荐!

2024-12-23 15:22:49 1343 3

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除