Parser GCD 之总结篇

Parser 之 GCD 总结篇

  • dispatch_once 在 process 周期内,只执行一次,保证唯一行。常见单例,线程,全局静态变量的设置等。
  • 实现多读,单写,基本采用 并发队列 DISPATCH_QUEUE_CONCURRENT ,配合 dispatch_barrier_async , dispatch_barrier_sync ,在读时采用 dispatch_sync 来进行读操作。
  • dispatch_semaphore_t 在此更多是阻断线程,保证,同步中的async 执行完毕之后,继续执行 同步的代码。 也可以当作,在当前线程 最大阻塞多久,继续执行。
  • dispatch_source_t DISPATCH_SOURCE_TYPE_DATA_ADD 操作,来完成,异步同步任务。每当触发 dispatch_source_merge_data(_processingQueueSource, 1); 时,就会调用async 一下 dispatch source 的 event hander ,使用场景:
    • 可以是进度(文件上传,下载,分片上传,下载等等)比较适合。
    • 单纯的一个async 操作,不管在任意线程,都可以采用如此方式,就事件,同步到 指定的queue中去。
  • dispatch_queue_t 可以用来做数据保护,通过 dispatch_sync 的方式来访问数据,就可以实现
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容