虽然GCD已经出现过一段时间了,但不是每个人都明了其主要内容。这是可以理解的;并发一直很棘手,而GCD是基于C的API,它们就像一组尖锐的棱角戳进Objective-C的平滑世界。我们将分两个部分的教程来深入学习GCD。在这两部分的系列中,第一个部分的将解释GCD是做什么的,并从许多基本的GCD函数中找出几个来展示。在第二部分,你将学到几个GCD提供的高级函数。GCD是libdispatch的市场名称,而libdispatch作为Apple的一个库,为并发代码在多核硬件(跑iOS或OSX)上执行提供有力支持。它具有以下优点:1.GCD能通过推迟昂贵计算任务并在后台运行它们来改善你的应用的响应性
2021-02-21 09:08:36 193KB 深入理解GCD(一)
1
在本系列的第一部分中,你已经学到超过你想像的关于并发、线程以及GCD如何工作的知识。通过在初始化时利用dispatch_once,你创建了一个线程安全的PhotoManager单例,而且你通过使用dispatch_barrier_async和dispatch_sync的组合使得对Photos数组的读取和写入都变得线程安全了。除了上面这些,你还通过利用dispatch_after来延迟显示提示信息,以及利用dispatch_async将CPU密集型任务从ViewController的初始化过程中剥离出来异步执行,达到了增强应用的用户体验的目的。如果你一直跟着第一部分的教程在写代码,那你可以继续你
2021-02-21 09:08:32 287KB 深入理解GCD(二)
1