【iOS's GCD Note】
1、默认有四种全局concureent queue,如下:
通过以下函数来引用:
2、官方文档上并发队列有3种,实际上main就是serial。
1)serial,用一个线程来按序取task执行。so task的顺序可以保证。
2)concurret,用多个线程来按序取task执行。so task的顺序无法保证。
3)main queue, 就是serial queue,只不过在主线程执行。
3、如上,全局有4个优先级队列,默认高级别task完成后才会执行低级别task。
4、dispatch barrier,这是一种障碍block任务,barrier会在所有在它之前提供的block运行完成后再运行,而在barrier之后提交的任务会在barrier执行完成后执行。
5、dispatch group是一组任务,可以创建一个group,然后添加任务进group。我们可以监听一个group的任务是否完成,以及设置group完成时执行的block。
6、dispatch_apply用于重复执行一个block指定的次数。
7、如果在syncQueue招待dispatch_sync(syncQueue,block),会发生死锁。
8、dispatch_queue_set_specific 系列函数可以为每个queue绑定数据。