iOS开发IOS程序猿阵线联盟-汇总各类技术干货

Dispatch_barrier_async(线程同步)

2017-09-04  本文已影响18人  天心鸥兹

Dispatch_barrier允许在并发队列中创建一个同步点,当并发队列中遇到一个dispatch_barrier时,会延时执行该dispatch_barrier,等待在dispatch_barrier之前提交的任务block执行完之后才开始执行,之后,并发队列继续执行后续block任务。

上图说明:

在添加到队列的任务1,2,3执行完毕后,然后才执行barrier,barrier执行完之后,才执行任务4,5。

看一段代码和执行的打印结果:

Dispatch_barrier_async 打印结果1

注意这里指定给barrier添加的并发队列应该是自己通过dispatch_queue_create函数创建的,如果传的是一个串行队列或者全局并发队列,那此时dispatch_barrier等同于Dispatch_async。

看下面两段代码执行之后的打印结果就一目了然啦:

通过dispatch_queue_create函数创建 通过并发队列创建
上一篇 下一篇

猜你喜欢

热点阅读