时序控制和引用计数理念

今天在听一个T10的答辩,其中有一个理念让我觉得很有意思,记录一下。

背景:

下载视频业务层均使用Service,同一个下载任务只能对应一个播放行为。
如果两个业务按照如下顺序下载同一个视频,就会出现问题:

时序控制和引用计数理念_第1张图片

最初听到这个问题,我第一想到的方案是代码控制时序,在业务B前检查业务A,保证调用业务B时,A的业务已经停掉了。

时序控制和引用计数理念_第2张图片

但这样的处理方式仅仅是为了解决当前问题给出的方案,如果后续有业务C、业务D也遇到类似的情况,那还是需要特殊处理。

答辩的同学给出的一个方案很简单,但很有意思:

它对播放器做了引用计数的逻辑,只有引用计数归零了,才会彻底移除下载任务。

引用计数我们熟记于心,但能想到用这种方案处理问题的,我觉得很牛逼。


**这个公众号会持续更新技术方案、关注业内技术动向,关注一下成本不高,错过干货损失不小。
↓↓↓**

你可能感兴趣的:(时序控制和引用计数理念)