知识卡片

资源有始有终

普通读书笔记卡 · 1878.c

内容

分配资源的地方应尽量负责释放资源,让生命周期在局部闭合。文件、锁、连接和内存一旦跨越多个责任边界,就容易泄漏或重复释放。

参考来源

- 位置:《程序员修炼之道:通向务实的最高境界(第2版)》第4章《务实的偏执》话题26「如何保持资源的平衡」(源文件:_epub-src/text/part0013_split_004.html) - 结论依据:原文用文件打开/关闭的重构例子说明分配资源的例程应负责释放资源,否则会产生共享变量耦合和资源泄漏,直接支持卡片论点。 - 原始内容:"分配资源的函数或对象,对释放资源应负有责任。提示40 有始有终……read_customer和write_customer紧密地耦合在一起……在有些场合下,write_customer未被调用。当这种情况发生时,文件没能关闭。"