1、当开发中,需要开启 多个任务,同时需要控制前几个任务和后几个任务的顺序,该怎么办?
2、可以使用GCD的栅栏函数控制任务的顺序。dispatch_barrier_async(dispatch_queue_t queue, dispatch_block_t block);
3、注意事项:
队列为并发队列,这个queue不能是(dispatch_get_global_queue)全局的并发队列,所以是用新创建的并发队列dispatch_queue_create
函数:
必须为异步函数async,同步函数sync没有意义。
在前面的任务执行结束后它(栅栏函数)才执行,而且它后面的任务等它执行完成之后才会执行(它前面任务顺序不能控制,它后面的顺序也不能控制)
同步栅栏函数:dispatch_barrier_sync: barrier_sync 块里的代码子主线程执行
异步栅栏函数; dispatch_barrier_async: barrier_async块里的代码在子线程执行。
![](https://img.haomeiwen.com/i14844115/dc0cceeaac35f618.png)
网友评论