gpt4 book ai didi

memory-management - 为什么析构函数会在 panic 发生时运行?

转载 作者:行者123 更新时间:2023-11-29 08:22:48 25 4
gpt4 key购买 nike

如果 Rust 程序发生 panic ,并且假设没有 panic 捕捉器(有一段时间没有),那么不运行析构函数并让操作系统在进程结束后清理肯定是安全和好的。为什么 Rust 展开线程?

我能想到的唯一原因是当没有操作系统来回收内存时,但除了那个利基之外,它似乎没有必要。

最佳答案

你的问题有一个错误的前提:它预先假设使用析构函数的唯一原因是清理当前进程的资源。

这确实是最常见的用法,但不是唯一的用法。

例如,我完全可以想象 TCP 连接的析构函数会尝试发送一条关闭消息:连接一旦关闭,另一端就会尽快释放资源。当然,这只是尽力而为(在中止/崩溃的情况下,析构函数永远不会运行),但它仍然是值得的。

关于memory-management - 为什么析构函数会在 panic 发生时运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46287442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com