< 返回版块

Aaron009 发表于 2021-01-29 22:53

最近在看Rust编程之道,书中124页,写到 控制资源(不仅仅是内存)的释放,感到困惑。

它有其他什么功能吗

评论区

写评论
hzqd 2021-02-04 02:27

为什么说“这些都是GC关照不到的地方”?所有权系统又如何管理?

👇
Aya0wind: 数据库连接,socket,文件,这些都是GC关照不到的地方,但在Rust里都可以被所有权系统管理。

Aya0wind 2021-01-30 12:52

资源包括内存,但是内存不包括所有资源,比如数据库连接,socket,文件,这些都是GC关照不到的地方,但在Rust里都可以被所有权系统管理。 然后所有权仅允许同时拥有一个可变引用,以及不允许可变和不可变引用共存。数据在多线程之间传递需要实现sync,访问也需要mutex,避免数据竞争。然后所有权避免引用已消亡的对象,防止内存错误。 内存释放只是是RAII模式的功能之一,而所有权是对RAII模式的进一步深化。

Mike Tang 2021-01-30 11:01

硬件资源,IO设备,外部存储等等,当然一般编程的时间都会映射到内存中来,释放内存,也需要同步释放这些资源,有些是在os层面自动做的。

ImSingee 2021-01-30 00:14

智能指针机制其实就类似析构函数,你可以释放你想要释放的一切资源,例如打开的文件

madolchepalooza 2021-01-29 23:52

可能是指IO流之类的硬件抽象吧

1 共 5 条评论, 1 页