什么是GCD:大中央调度器
GCD优点:是苹果专门为多核的并行运算提供的解决方案,
自动利用CPU内核,自动管理线程生命周期,程序员只需要告诉GCD要执行的任务,不需要编写任何线程管理代码。
GCD的核心概念:
任务:要执行什么操作;
队列:用来存放任务(先进先出)
GCD中两个用来执行任务的函数:
1,同步:dispath_sync (在当前线程中执行)
2, 异步: dispath_async (新开一条线程执行)
GCD的队列可以分为两类:
1,并发队列:可以让多个任务并发执行(自动开启多个线程并同时执行任务)(只有在异步函数下才有效)
2,串行队列:一个任务执行完毕后再执行下一个任务。
同步执行方法:
异步执行方法:
线程间通讯:如何在子线程中跳回主线程(必须在主线程刷新UI)
串行队列,异步方法:
串行队列,同步方法:
***********************延时执行*************************
****************************一次性执行****************************
有的时候,我们在开发中,有些代码,从程序启动之后,就只希望执行一次!
尤其在单例设计模式中使用非常普遍,在iOS开发中,单例的使用,已经到了“滥用”程度!
*************************调度组***************************
****************死锁*******************
1,如果主线程上有任务在执行,主队列不会调度任务。
2,关于GCD Block嵌套,要尽量减少层次,最多不要超过三层。
3,层次越多越复杂,多线程开发的原则:简单!