5. 几个第三方框架关于线程锁的封装小技巧

作者: 陈满iOS

启示

第三方库中经常用到的这个小技巧,例如 YYCacheSDWebImage 等等,虽然各自封装的具体形式不太一样。

  • YYCache

YYCache
  • SDWebImage

SDWebImage
  • YYWebImage

YYWebImage

我们可以借鉴到自己的项目中,在适当的位置通过宏来加锁解锁操作。

使用

1. YYCache 版本的宏封装

  • 操作数据之前,先外面进行加锁解锁

  • 锁里面再进行真正的数据操作

2. SDWebImage版本的宏封装

  • 定义

  • 调用示例

其中,self.headersLock 的定义为:

3. YYWebImage版本的宏封装

相对于上面,还有更方便的宏封装,把解锁操作跟加锁封装在一块。

  • 宏定义

  • 使用示例

Last updated

Was this helpful?