GCD执行任务的方法并不是只有简单的同步调用方法和异步调用方法,还有其余一些经常使用方法:app
dispatch_apply():重复执行某个任务,可是注意这个方法没有办法异步执行(为了避免阻塞线程能够使用dispatch_async()包装一下再执行)。异步
dispatch_once():单次执行一个任务,此方法中的任务只会执行一次,重复调用也没办法重复执行(单例模式中经常使用此方法)。async
dispatch_time():延迟必定的时间后执行。spa
dispatch_barrier_async():使用此方法建立的任务首先会查看队列中有没有别的任务要执行,若是有,则会等待已有任务执行完毕再执 行;同时在此方法后添加的任务必须等待此方法中任务执行后才能执行。(利用这个方法能够控制执行顺序,例如前面先加载最后一张图片的需求就能够先使用这个 方法将最后一张图片加载的操做添加到队列,而后调用dispatch_async()添加其余图片加载任务)线程
dispatch_group_async():实现对任务分组管理,若是一组任务所有完成能够经过dispatch_group_notify()方法得到完成通知(须要定义dispatch_group_t做为分组标识)。队列