以后会多写些本质论的文章,这样可以更好的引导自己去深入思考。
为什么要用引用计数?
场景:代码里X是一个非常重要的资源,模块A,B,C都有对其指针的引用,那么为了不出现内存泄露,常规的代码我们要怎么写?
1. A 模块用完X时,需要检查B,C是否还在引用X,如果B,C有一个在用,那么X只要删除掉对A的引用就可以了,
如果B,C对A都已经没有引用了,那么A需要删除对X的引用时,要同时清除掉X。
2.同样B,C在用完X时,也要重复做1里面的事情。
这样,代码将会多了许多的逻辑判断,同时模块B,C还需要对模块A提供查询是否在引用X的接口。
可以不这么恶心吗?