面试总结 - YYCache

YYCache

YYCache 是提供用户使用的对象,内部对 YYMemoryCache 和 YYDiskCache 功能的整合封装。为 YYMemoryCache 提供了多线程功能,而 YYDiskCache 对象本身内部封装了异步读写功能。

YYMemoryCache

YYMemoryCache 内部有一个储存对象,实现分为两部分:
1.第一部分,淘汰算法,这里使用一个双向链表,每个节点为 _YYLinkedMapNode 类对象,通过访问最后访问时间来对链表进行排列,最新访问的缓存节点放在链表的头部,淘汰算法只需要将链表未尾节点移除即可
2.第二部分,查找算法,这里使用的是 CFMutableDictionaryRef 散列表进行存储
YYMemoryCache 的多线程安全是 使用 pthread_mutex_t(互斥锁) 来完成

YYDiskCache

1.YYDiskCache 是对 YYKVStorage 封装了异步访问 API,多线程安全使用 dispatch_semaphore_t(二元信号量) 来完成
2.YYDiskCache 中同一功能方法,同步和异步的区别:异步方法的实现其实质上就是只是异步的调用了同步方法
3.YYDiskCache 自动清理缓存机制,通过dispatch_after方法递归调用清理缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值