核心概念:
任务:block
队列:把任务放到队列里面,队列先进先出原则
串行队列:顺序执行,即第一个执行完毕之后才会执行下一个
并行队列:同时执行,同时执行多个任务
同步sync:不会开辟新线程
异步async:会开辟新线程
串行队列同步执行:不会开辟新线程,任务在当前线程里面顺序执行
串行队列异步执行:会开辟新线程,任务在这个新的线程里面顺序执行
并行队列同步执行:不会开辟新线程,任务在当前线程里面顺序执行
并行队列异步执行:会开辟多个线程,任务并发执行
总结:
1、开不开线程,由执行任务的方法决定,同步不开线程,异步肯定开线程
2、开多少线程,由队列决定,串行队列最多只开一个线程,并发队列开多个线程,具体开几个线程,由GCD底层决定,程序员不能决定。