GCD引入任务、队列两个概念。
任务:block。
队列:用来管理任务用的。
任务的执行方式分两种:同步执行、异步执行。
同步执行:首先同步执行肯定是在当前线程执行的,会在上一个任务(block代码块)执行完后再执行下一个任务。
异步执行:异步执行会另开线程执行任务,不会管上一个任务是否执行完,会在另一个线程内执行下一个任务。
队列也分为两种:串行队列、并行队列。
串行队列:遵循FIFO原则,会先取出先进去的任务,执行完这个任务再去取下一个任务。
并行队列:也遵循FIFO原则,但时间太快可忽略不计,取出所有任务同时执行。
串行同步执行:在当前线程,逐一执行任务。
串行异步执行:有序的按照FIFO原则逐一执行,但是每个任务都会另开线程。
并行同步执行:在当前线程,逐一执行任务。
并行异步执行:无序的开多个线程同时执行任务。
参考文章:
http://www.jianshu.com/p/e6905468c780
https://github.com/nixzhu/dev-blog/blob/master/2014-04-19-grand-central-dispatch-in-depth-part-1.md
http://www.cnblogs.com/dsxniubility/p/4296937.html
http://ios.jobbole.com/82622/