跳转至

Rust

静态变量与静态生命周期

Rust 保证内存安全, 但是防止内存泄露不属于内存安全的一部分. 所以 Rust 并不保证不会发生内存泄露, 甚至允许通过 Box::leak 这类安全的函数, 主动泄露内存. 1

静态变量 (通过 static 关键字定义的), 满足 'static 生命周期约束, 但满足该生命周期约束的变量, 不一定是静态变量. 也可能是在运行过程中创建的变量 (通过动态内存分配), 然后通过 Box::leak 这类函数泄露, 就满足 'static 约束.

这种动态创建的, 满足 'static 约束的变量, 是可以通过 std::mem::drop 手动释放的. 这使得他们与静态变量非常不同.

Rust Atomics and Locks

标题
并发基础
原子

  1. https://github.com/pretzelhammer/rust-blog/blob/master/posts/translations/zh-hans/common-rust-lifetime-misconceptions.md 

评论