Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

1. 内存序的概念及其详细的类型说明1.1. 什么是内存序?在多核系统中,当一个线程写入内存时,同一核心可以立即读到这个值,但其他核心上的线程可能在一段时间内仍然看到旧值。更复杂的是,编译器和CPU为了性能,可能会对指令进行重排。 内存序(Memory Order)正是用来控制这些行为的机制——它指定了原子操作周围的非原子内存访问如何排序。 1.2. 内存序的类型C++11定义了6种内存序:...

1. 核心概念和实现原理1.1. 什么是原子操作?原子变量(std::atomic)是 C++11 引入的多线程同步原语,它能保证对变量的单个操作是不可分割的——要么完整执行,要么完全没执行,中间不会被其他线程打断,从而避免数据竞争(data race)。 1.2. 为什么需要原子操作?考虑一个简单的场景:多个线程同时对一个整数执行自增操作: 123int counter = 0;// 线程...

本文深入介绍C++ 中 mutable 关键字,阐述其突破 const 限制与保持逻辑常性的核心功能,通过实例展示在缓存、互斥锁、引用计数等场景的用法,强调使用时的注意事项及遵循逻辑常性原则,总结其在提升代码灵活性和性能方面的作用。

:本文全面深入地阐述了C语言内存对齐的原理与用法,从基本原理、详细规则,到控制方法、实际应用、跨平台注意事项,以及调试诊断和最佳实践建议,助力读者掌握内存对齐知识,优化C语言程序,提升性能并确保兼容性。

全面介绍CRC32校验值计算的两种典型方案,包括预查表法和无查表法,详细阐述核心原理、给出完整可运行代码及代码说明,介绍编译运行方式,对比两种方案优缺点并给出选型建议,助读者掌握CRC32计算方法及应用场景选择。

本文深入剖析负整数二进制表示,介绍原码、反码与补码,着重阐述补码的规则、优势及快速识别负数方法,通过C/C++代码验证,总结关键要点,助读者理解计算机处理负数原理,提升编程知识与技能。

1. 什么是HyperLogLog? 1.1. 一句话描述 1.2. 核心问题 1.3. 传统方法的瓶颈 1.4. HyperLogLog方案 1.5. 核心思想 2. 算法原理详解 2.1. 直观理解(抛硬币实验) 2.2. 算法步骤 2.2.1. 步骤 1:哈希处理 2.2.2. 步骤 2:分桶统计 2.2.3. 步骤 3:更新寄存器 2.2.4. 步骤 4:基数估算 3....

1. 基本概念 2. 工作原理 2.1. 误判率公式 2.2. 最优哈希函数数量 3. 代码实现 4. 应用场景 4.1. 核心应用场景 4.1.1. 数据库与存储系统 4.1.2. 网络与缓存 4.1.3. 网络爬虫与去重 4.1.4. 网络安全 4.1.5. 大数据与流处理 4.1.6. 文件系统与存储 4.1.7. 分布式系统 4.1.8. 生物信息学 4.2. 适用场景特征...

1. 哈希函数原理 1.1. 基本概念 1.2. 哈希函数特性 1.3. 哈希冲突 2. 常用哈希算法 2.1. 非加密哈希函数 2.1.1. 多项式滚动哈希 2.1.2. DJB2 2.1.3. FNV-1/FNV-1a 2.1.4. Jenkins 2.1.5. MurmurHash 2.2. 加密哈希函数 2.2.1. MD5 2.2.2. SHA 2.3. 专...

1. Bitmap 原理 1.1. 基本概念 1.2. 核心功能 1.3. 核心思想 1.4. 存储效率 2. Bitmap 代码实现 2.1. 基础版本 2.2. 动态扩容 2.3. 压缩位图 2.4. 对比分析 3. Bitmap 应用场景 3.1. 4.1 大数据去重 3.2. 4.2 用户标签系统 3.3. 4.3 布隆过滤器(Bloom Filter) 4. 总结 ...