虽然GCD已经出现过一段时间了,但不是每个人都明了其主要内容。
这是可以理解的;
并发一直很棘手,而GCD是基于C的API,它们就像一组尖锐的棱角戳进Objective-C的平滑世界。
我们将分两个部分的教程来深入学习GCD。
在这两部分的系列中,第一个部分的将解释GCD是做什么的,并从许多基本的GCD函数中找出几个来展示。
在第二部分,你将学到几个GCD提供的高级函数。
GCD是libdispatch的市场名称,而libdispatch作为Apple的一个库,为并发代码在多核硬件(跑iOS或OSX)上执行提供有力支持。
它具有以下优点:1.GCD能通过推迟昂贵计算任务并在后台运行它们来改善你的应用的响应性
2025/11/20 14:37:11 193KB 深入理解GCD(一)
1
在本系列的第一部分中,你已经学到超过你想像的关于并发、线程以及GCD如何工作的知识。
通过在初始化时利用dispatch_once,你创建了一个线程安全的PhotoManager单例,而且你通过使用dispatch_barrier_async和dispatch_sync的组合使得对Photos数组的读取和写入都变得线程安全了。
除了上面这些,你还通过利用dispatch_after来延迟显示提示信息,以及利用dispatch_async将CPU密集型任务从ViewController的初始化过程中剥离出来异步执行,达到了增强应用的用户体验的目的。
如果你一直跟着第一部分的教程在写代码,那你可以继续你
2024/7/15 9:42:24 287KB 深入理解GCD(二)
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡