>1是苹果专门用来处理多核CPU的,可以自动管理线程以及CPU的调用,可以提高效率
>2队列
<1>串行(serial dispatch queue)
>1任务依次执行(First in First out)
>2创建:dispatch_queue_create(“标示符”,DISPATCH_QUEUE_SERIAL);
<2>并行(concurrent dispatch queue);
>1随机调度任务,自动开启线程执行任务;
>2里面的任务只有是异步任务时,才有效;
>3创建:dispatch_queue_creat(“标示符”,DISPATCH_QUEUE_CONCURRENT);
>4主队列:专门用来在主线程调度任务的队列,不开启新线程;以先进先出的方式,在主线程空闲的时候才会调用队列中的任务;主队列中加入同步任务会照成死锁;
>5并发队列:可以获取,无论MRC&ARC都不用考虑释放;
>3任务
>1同步任务:dispatch_sync(dispatch_queue_t queue,dispatch_block_t block);
>2异步任务:dispatch_async(dispatch_queue_t queue,dispatch_block_t block);
>4dispatch_once_t一次性执行,用来设计单列;
>5调度组:调度组中的任务执行结束后,会得到统一的通知.
<1>创建:dispatch_group_creat();
<2>添加任务:dispatch_group_async(group,queue,^{block});
<3>通知:dispatch_group_notify(group,queue,^{block});
<4>调度组后任务执行时间:dispatch_group_wait(group,DISPATCH_TIME_FOREVER);