Rust 程序设计(第 2 版)
Jim Blandy, Jason Orendorff, Leonora F. S. Tindall
软件工程师
1469 人已学习
立即订阅
登录后,你可以任选4讲全文学习
推荐试读
换一换
课程目录
已完结/共 41 讲
时长 02:41
时长 06:30
时长 10:04
时长 01:05
时长 50:06
时长 31:35
时长 34:39
时长 29:11
时长 37:15
时长 23:44
时长 44:19
时长 29:54
时长 39:01
时长 01:38
时长 01:15
时长 00:37
Rust 程序设计(第 2 版)
15
15
1.0x
00:00/00:00
登录|注册

第 4 章 所有权与移动

谈及内存管理,我们希望编程语言能具备两个特点:
希望内存能在我们选定的时机及时释放,这使我们能控制程序的内存消耗;
在对象被释放后,我们绝不希望继续使用指向它的指针,这是未定义行为,会导致崩溃和安全漏洞。
但上述情景似乎难以兼顾:只要指向值的指针仍然存在,释放这个值就必然会让这些指针悬空。几乎所有主流编程语言都只能在两个阵营中“二选一”,这取决于它们从中放弃了哪一项。
“安全优先”阵营会通过垃圾回收机制来管理内存,在所有指向对象的可达指针都消失后,自动释放对象。它通过简单地保留对象,直到再也没有指向它们的指针为止,来消除悬空指针。几乎所有现代语言都属于这个阵营,从 Python、JavaScript 和 Ruby 到 Java、C# 和 Haskell。
但是依赖垃圾回收,就意味着放弃了对于释放对象时机的精准控制,完全委托给回收器代管。一般来说,垃圾回收器就像奇怪的野兽般难以捉摸,要理解内存为何没有在预期的时机被释放可能颇具挑战。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Rust语言通过引入所有权概念,解决了内存管理和并发编程中的重要问题。Rust的所有权概念内置于语言本身,并通过编译期检查强制执行,每个值都有决定其生命周期的唯一拥有者。文章强调了Rust语言在解决内存管理和并发编程问题上的独特优势和价值。此外,文章还对比了Rust中的所有权概念与C++中的std::string,强调了Rust的规则对内存安全和并发编程的重要性。同时,文章提到了Rust的核心挑战,即学习如何用好这些规则并转化为自己的优势。总的来说,Rust语言的所有权概念为内存管理和并发编程带来了灵活性和安全性,是其成功的基础和语言的根源。文章还介绍了Rust中的Copy和Clone特型,以及Rc和Arc类型的使用,展示了Rust在共享所有权和线程安全方面的优势。文章内容丰富,深入探讨了Rust语言的内存管理和并发编程特性,对于想要深入了解Rust语言的读者具有重要参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Rust 程序设计(第 2 版)》
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部