news 2026/6/15 18:31:01

RUST Arc

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RUST Arc

ArcAtomically Reference Counted的缩写,即"原子引用计数"。

它的作用是:让多个所有者同时持有同一份堆上数据,且可以安全地跨线程使用。

Rust 里 Arc::new(value) 内部就是把数据分配到堆上,然后返回一个指向它的智能指针。对应到 C 大概是:

// C 的手动版本typedefstruct{intref_count;// Arc 的引用计数YourData data;// 实际数据}ArcInner;ArcInner*ptr=malloc(sizeof(ArcInner));ptr->ref_count=1;ptr->data=...;

Arc::clone 就是 ref_count++,Arc 被 drop 就是 ref_count–,降到 0 就 free(ptr)。

区别在于:

  • C 里你得自己维护这套逻辑,容易 double-free 或 use-after-free
  • Rust 的 Arc 把这套计数逻辑封进类型系统,编译器帮你保证正确性,且 ref_count 的加减是原子操作(线程安全)

所以 Arc 本质上就是 线程安全的、自动管理的 malloc + 引用计数。

TODO: here

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 18:30:23

手把手 教你,ClaudeCode + CC-Switch 安装使用!!

【请多多关注,后面会继续UP!!!】 Claude Code 👾👾👾 Claude Code 是 Anthropic 公司推出的 AI 编程助手, 专为开发者设计的 CLI 工具。它不仅能够理解代码、生成代码&#xff0c…

作者头像 李华
网站建设 2026/6/15 18:27:52

云计算第三次作业(挂载)

新建sata磁盘然后分区fdisk,n新建分区,用p确认主分区,w进行分区对sda分出sda1(这个地方虚拟机死机了,截图就是分区好的)格式化为ext4,然后改为xfs类型最后进行挂载,卸载,…

作者头像 李华
网站建设 2026/6/15 18:26:52

Perforated Backpropagation:反向传播的轻量级梯度打孔优化

1. 项目概述:这不是又一个“调参技巧”,而是一次对反向传播根基的轻量级外科手术“Perforated Backpropagation”——光看这个名字,你可能会下意识地皱眉:又一个听着高大上、实则晦涩难懂的学术黑话?但当我第一次在arX…

作者头像 李华
网站建设 2026/6/15 18:24:25

3步轻松解锁加密音乐:告别平台限制的音乐自由指南

3步轻松解锁加密音乐:告别平台限制的音乐自由指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://g…

作者头像 李华