- 博客(12)
- 收藏
- 关注
原创 expr:表达式求值命令
expr是 Shell 中用于执行表达式求值的经典命令,支持算术运算、字符串操作和逻辑比较,尤其在需要 的脚本中广泛使用。
2025-08-15 14:54:27
369
原创 C++互斥体使用指南
摘要:互斥体(Mutex)是C++中解决多线程数据竞争的核心同步机制,通过加锁/解锁操作确保共享资源的独占访问。C++11提供的互斥体类型包括基本互斥体(std::mutex)、递归互斥体(std::recursive_mutex)、带超时功能互斥体(std::timed_mutex)等。最佳实践强调使用RAII包装器(std::lock_guard/unique_lock/scoped_lock)自动管理锁生命周期,避免手动解锁导致的死锁风险。关键注意事项包括:最小化临界区、避免死锁、谨慎使用递归锁、不返
2025-08-04 10:50:22
759
原创 动态规划(Dynamic Programming, DP) 算法
动态规划是一种通过存储子问题解来避免重复计算、从而高效解决具有重叠子问题和最优子结构性质的优化问题的强大技术。掌握它的关键在于:1) 准确识别问题是否适合 DP;2) 精确定义状态;3) 正确推导出状态转移方程;4) 处理好初始化和计算顺序。通过学习和练习经典问题模型,可以逐渐培养出运用动态规划解决问题的思维和能力。
2025-07-15 10:49:25
733
原创 事务隔离级别及并发控制详解
事务隔离级别是数据库并发控制的关键设置,它决定了并发事务能看到彼此的哪些修改。理解脏读、不可重复读和幻读这些并发问题,以及不同隔离级别如何解决(或允许)它们,对于设计健壮、高效的数据库应用程序至关重要。选择适当的隔离级别需要在数据一致性和系统性能之间进行仔细的权衡。大多数情况下,读已提交是一个良好的起点,根据具体需求再考虑升级或降级。
2025-07-09 11:38:41
605
原创 Netty高性能网络框架介绍
Netty 是一个强大的、基于 Java NIO 构建的异步事件驱动网络应用框架。它通过精心设计的架构(事件循环、Pipeline、零拷贝、高效缓冲区)和丰富的组件库,提供了卓越的性能、高吞吐量、低延迟以及高度的可扩展性和灵活性,同时显著降低了复杂网络编程的门槛。Netty 已成为构建高性能网络服务器和客户端的 Java 社区事实标准,支撑着众多顶尖开源项目和大型分布式系统。如果你需要开发一个高性能的网络应用,Netty 是一个非常值得考虑甚至首选的框架。
2025-07-08 16:16:03
804
原创 基于redis实现分布式锁
Redis 分布式锁(基于SET NX PX+ Lua 释放)是一种简单、高效且广泛使用的方案,适用于大多数非极端严格的分布式并发控制场景。其主要缺陷在于锁续期的挑战和主从切换/网络分区可能导致的锁失效问题。Redlock 算法试图解决后者,但带来了复杂性、性能开销和理论争议。在选择时,务必清楚其局限性,优先使用成熟客户端库(如 Redisson),并根据业务场景对一致性的实际要求做出权衡。
2025-07-08 15:56:11
1532
原创 一致性哈希算法介绍
添加或删除节点时,只影响环上相邻节点的数据,数据迁移量最小化。系统可以轻松水平扩展。通过虚拟节点技术,可以将数据和请求相对均匀地分布到所有节点上(尤其是在节点数量足够多时)。一个节点故障,只影响其负责的数据,其他节点正常工作。查找数据所属节点的过程非常高效(通常使用类似二叉搜索树的结构存储节点位置,定位时间复杂度接近 O(log N))。一致性哈希算法通过构建一个抽象的哈希环,将节点和数据映射到环上,并采用顺时针查找的方式定位数据所属节点。其核心价值在于。
2025-07-08 10:26:31
555
原创 Eden与S0,S1介绍
作为存活对象的缓冲区,减少晋升到老年代的对象数量,从而减少 Major GC/Full GC 的频率。通过 Survivor 区的缓冲和年龄计数,让真正长期存活的对象才进入老年代,极大地降低了老年代 GC 的频率(老年代 GC 代价高)。对象分配速度快(指针碰撞或 TLAB),回收频率高,回收速度快(因为大部分对象都死了)。牺牲一半(Survivor 区)的空间,换取高效的垃圾回收(无碎片、扫描范围小)。,并给这些对象一个“成长”的机会,避免生命周期稍长的对象过早进入老年代。整个 Eden 区。
2025-07-07 19:33:26
1736
原创 happens-before 原则是什么?
原则是 Java 并发模型的核心,它定义了操作之间的内存可见性保证,而非物理时间顺序。它通过一系列明确的规则(如锁、volatile、线程启动/终止等)建立操作间的偏序关系,并具有传递性。理解并正确运用规则是编写正确、高效并发程序的基础,它使得底层优化成为可能,同时为程序员提供了确保多线程行为可预测性的工具。当你正确使用了volatileLock等同步机制时,本质上就是在利用这些规则建立跨线程的关系,从而保证共享数据修改的可见性。
2025-07-06 11:31:56
633
1
原创 Leaf-Segment介绍
Leaf-Segment通过号段预分配+双Buffer异步加载,在保证全局唯一性的同时显著提升系统吞吐量,成为高并发场景的经典分布式ID方案。尽管存在ID连续性带来的安全局限,其在美团等大规模业务中的成熟应用验证了其稳定性和扩展价值137。对需更高安全性的场景,可结合Leaf-Snowflake(雪花算法改进版)构建混合ID生成体系。
2025-07-06 10:40:07
694
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅