长安一梦个人主页

explicit关键字

explicit 是一个关键字,主要用于 C++ 语言中,用于修饰类的构造函数。它的作用是防止编译器进行隐式的类型转换,从而避免潜在的错误或歧义。 作用: 禁止隐式转换: 当构造函数被声明为 explicit 时,编译器不会自动调用该构造函数进行隐式类型转换,必须显式地调用构造函数。 避免意外的行为

Administrator Administrator 发布于 2025-10-11

一文搞懂UML类图

学习设计模式,离不开UML(统一建模语言)类图的使用,本文详细梳理下UML六种类图的含义: 1、关联(Association): 表示类与类之间的联接,它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的。程序中一个类的全局变量引用了另一

Administrator Administrator 发布于 2025-09-24

设计模式

《Design Patterns: Elements of Reusable Object-Oriented Software》 ------ 尝试构建高效、可维护和可扩展的方式来构建软件系统。 设计原则: 1. 单一职责原则(SRP):一个类只做一件事 2. 开闭原则(OCP):对扩展开放,对修改

Administrator Administrator 发布于 2025-09-18

线程安全引用计数和使用RAII的智能指针包装器

class ThreadSafeRefCounted { public: ThreadSafeRefCounted() noexcept : refCount(0) {} //禁用拷贝和移动 ThreadSafeRefCounted(const ThreadSafeRefCo

Administrator Administrator 发布于 2025-09-12

malloc 底层原理详解

malloc 的底层实现依赖于 C 库,通常使用 ptmalloc(glibc 默认分配器)、tcmalloc(Google)或 jemalloc(FreeBSD 等)等。 下文详细阐述 glibc 的 ptmalloc 机制下的 malloc 的底层实现 基本概念 内存分配器:管理堆内存,处理内存

Administrator Administrator 发布于 2025-09-09

mmap 底层原理及内存申请时机

mmap(Memory Map)是 Linux/Unix 系统提供的一种将文件或设备映射到进程虚拟地址空间的机制,其底层原理和内存申请时机涉及 虚拟内存管理、缺页异常(Page Fault) 和 内核交互。以下是详细分析:

Administrator Administrator 发布于 2025-09-09

GDB

1.使用 dump memory 导出二进制数据 dump memory <输出文件> <起始地址> <结束地址> 示例: pBuf 的地址是 0x55555555a000 nLength 的值是 1024(字节) # 计算结束地址 = pBuf + nLength (gdb) s

Administrator Administrator 发布于 2025-09-08

Actor 模型

这是一个非常重要且经典的并发计算模型,旨在简化分布式和并行系统的开发。它的核心思想是“万物皆Actor”,通过消息传递进行通信。 1. 核心思想:应对并发编程的挑战 传统的基于共享内存的并发编程(如使用锁和线程)非常复杂且容易出错,常见问题包括: 竞态条件:结果依赖于线程执行的时序。 死锁:多个线程

Administrator Administrator 发布于 2025-09-04

Reactor 模型

这是一个在高性能网络编程中至关重要的设计模式,它用于高效地处理大量的并发连接,而无需为每个连接创建昂贵的线程。像 Node.js、Nginx、Netty、Redis 等众多知名软件的核心都基于 Reactor 模型。 1. 核心思想:不要等,有事我喊你 Reactor 模式的核心思想是 “非阻塞同步

Administrator Administrator 发布于 2025-09-04

并发计算模型

并发计算模型是理解和构建并发系统(如多线程程序、分布式系统)的理论和抽象框架。 1. 线程与锁模型 这是最传统、最接近底层(操作系统)的模型,也是大多数程序员最先接触的模型。 核心思想:并发的基本单位是线程。多个线程共享同一进程的内存空间(共享内存)。通过锁(如互斥锁Mutex、信号量Semapho

Administrator Administrator 发布于 2025-09-04
上一页 下一页