iOS7升到iOS8后,GCD 出现了一个重大的变化:在 iOS7 时,使用 GCD 的并行队列, dispatch_async 最大开启的线程一直能控制在6、7条,线程数都是个位数,然而 iOS8后,最大线程数一度可以达到40条、50条。然而在文档上并没有对这一做法的目的进行介绍。

本篇目的是通过解读 Parse 源码来展示GCD两个高级用法: Dispatch Source (派发源)和 Dispatch Semaphore (信号量)。首先通过Parse 的“离线存储对象”操作,来介绍 Dispatch Source (派发源);然后通过Parse 的单元测试中使用的技巧“强制把异步任务转换为同步任务来方便进行单元测试”来介绍Dispatch Semaphore (信号量)。

阅读原文 »

3 收藏


直接登录

推荐关注