GCD
同步和异步;串行和并行
同步和异步、串行和并行是两种不同的概念,就好比深浅拷贝、可变和不可变一样。 同步:不能创建线程,因此不管是在串行还是并行中都是主线成在运行。 异步:可以创建子线程。每一次任务都创建一个子线程,但是子线程的个数是有限的,同时当前线程执行完可以重新使用。在串行中是同一个字线程在循环使用,而并行中就会创建多个子线程。
dispatch_barrier_sync
为同步栅栏,会在主线程执行队列中的任务。因此要等到此执行完之后在执行barrier之后的内容。
dispatch_barrier_async
此会开辟一个子线程,但是因为在同一个队列中所以会使主线程先执行完,然后在执行barrier之后的内容。
AFNetWork使用barrier
对于AF使用dispatch_group_enter 和 dispatch_group_leave ,此为成对出现.执行一次enter就执行一次leave