C++11 引入的移动语义(Move Semantics)是现代 C++ 的分水岭,它彻底终结了以往深拷贝带来的大量无谓堆内存分配与数据移动开销。移动语义的基石是右值引用(Rvalue Reference,用 && 表示)。在 C++ 中,左值(Lvalue)指的是拥有持久状态、可寻址的表达式;右值(Rvalue)则是
分类:系统编程
共 15 篇文章系统编程相关技术文章
JDK 21 正式引入的虚拟线程(Virtual Thread)由 JVM 调度而非操作系统内核调度,单个 JVM 可轻松创建数百万个虚拟线程。当虚拟线程阻塞在 I/O 时,JVM 自动卸载(unmount)其载体线程,极大提升阻塞式代码的并发能力。 一、虚拟线程执行器与结构化并发
Rust 依靠所有权(Ownership)和生命周期(Lifetime)在编译期彻底根除了悬垂指针和数据竞争。但在实现底层驱动或 FFI 互操作时,必须在明确受限的 unsafe 块 中手动保证原始指针解引用的安全性。 一、原始指针读写与未定义行为(UB)边界
Rust 语言最具开创性的设计是摒弃了显式内存管理(如 C/C++ 的 malloc/free)与垃圾回收机制(Garbage Collection),在编译期通过“所有权”(Ownership)系统实现了零成本抽象与绝对内存安全。所有权系统的三大定律为:每一个值都有且仅有一个被称为其所有者(Owner)的变量;当所有
Goroutine 泄漏是 Go 服务内存持续增长的常见根因:启动的协程因阻塞在 channel 发送/接收或无限循环中永不退出。通过 context.Context 的取消信号传播,配合 select 监听 ctx.Done(),可确保协程树级联退出。 一、Context 取消与 select 退出模式