GCD知识点梳理
GCD(Grand Central Dispatch)是苹果推出的用于多核并行编程的技术.关于 GCD 编程一定要知道的知识点:
1、GCD 是什么:GCD 是一种异步执行任务的技术,能够帮助程序员更方便地实现多线程编程,提高程序的性能。
2、GCD 的优势:GCD 可以通过自动化任务的管理来避免开发者手动管理线程和队列,从而减少代码复杂度和错误率。
3、GCD 中的队列:GCD 中有两种队列,串行队列和并发队列。串行队列每次只能执行一个任务,而并发队列可以同时执行多个任务。
4、GCD 中的任务:GCD 中的任务可以是同步任务或异步任务。同步任务会阻塞当前线程,直到该任务完成为止,而异步任务会在后台执行,不会阻塞当前线程。
5、GCD 中的执行方法:GCD 提供了三种任务执行方法,分别是同步执行、异步执行和栅栏执行。同步执行是在当前线程中执行任务,异步执行是在后台线程中执行任务,而栅栏执行可以在任务执行前和执行后插入其他任务。
6、GCD 中的 Dispatch Group:Dispatch Group 可以将一组任务添加到一个组中,然后等待组中的所有任务执行完成后再执行其他操作。
7、GCD 中的 Dispatch Semaphore:Dispatch Semaphore 可以用来管理资源的访问,可以控制同时访问资源的线程数。
8、GCD 中的 Dispatch Source:Dispatch Source 可以用来监控各种系统事件,如文件系统变化、定时器事件等等。
GCD 中的队列
在GCD中,队列是用于管理任务的一种机制。队列可以分为两种类型:
- 串行队列
- 并发队列
不同类型的队列在任务执行的方式上有很大不同。
串行队列按照任务添加到队列中的顺序,一个一个地执行,每次只有一个任务在执行。也就是说,任务按照FIFO的顺序执行。在串行队列中,任务必须一个接一个地执行,因此这种队列适用于需要顺序执行任务的场景,比如在某个任务完成后执行另一个任务。
并发队列可以同时执行多个任务,但是任务的执行顺序并不一定按照添加到队列中的顺序,而是取决于系统资源的可用性和任务的优先级。在并发队列中,任务是并发执行的,所以适用于需要同时执行多个任务的场景,比如图片下载或者数据处理。
在GCD中,队列还分为两种
- 主队列
- 自定义队列。
主队列是一个串行队列,负责在主线程上执行任务,因此在主队列上执行的任务必须要快速完成,避免阻塞主线程。自