RUST Arc

RUST Arc Arc是Atomically Reference Counted的缩写即原子引用计数。它的作用是让多个所有者同时持有同一份堆上数据且可以安全地跨线程使用。Rust 里 Arc::new(value) 内部就是把数据分配到堆上然后返回一个指向它的智能指针。对应到 C 大概是// C 的手动版本typedefstruct{intref_count;// Arc 的引用计数YourData data;// 实际数据}ArcInner;ArcInner*ptrmalloc(sizeof(ArcInner));ptr-ref_count1;ptr-data...;Arc::clone 就是 ref_countArc 被 drop 就是 ref_count–降到 0 就 free(ptr)。区别在于C 里你得自己维护这套逻辑容易 double-free 或 use-after-freeRust 的 Arc 把这套计数逻辑封进类型系统编译器帮你保证正确性且 ref_count 的加减是原子操作线程安全所以 Arc 本质上就是 线程安全的、自动管理的 malloc 引用计数。TODO: here