GCD队列
主队列 (main queue)
QOS_CLASS_USER_INTERACTIVE: user interactived等级表示任务需要被立即执行提供好的体验,用来更新UI,响应事件等.最好保持小规模
QOS_CLASS_USER_INITIATED:user initiated等级表示任务由UI发起异步执行.适用场景是需要及时结果同时又可以继续交互的时候
QOS_CLASS_UTILITY:uitlity等级表示需要长时间运行的任务,伴有用户可见进度指示器.经常会用来做计算、I/O、网络、持续的数据填充等任务.这个任务节能
QOS_CLASS_BACKGOUND:background等级表示用户不会察觉的任务,使用它来处理预加载,或者不需要用户交互和对时间不敏感的任务
dispatch_sync()
同步线程,不会开辟新的线程.如果改队列为串行队列,将会产生死锁.并发队列不会产生
dispatch_async()
异步线程,会开辟新的线程
dispatch_apply()
多线程的大量数据访问询问
dispatch_sources()
dispatch_barrier_async()
当运行的时候,不会去做其他事情.可以实现多读单写
多读单写
异步栅栏,同步读数据,使用并发队列
dispatch_groups()
线程组,完成多个任务,在通知其他任务继续.
配合 dispatch_groups_notify()
队列
串行队列
并发队列