iOS多线程系列之GCD栅栏(barrier)实现同步锁

  • 多线程编程中很容易出现资源竞争的问题,好比异步读写操做形成数据不一样步。那么解决这一问题多线程编程中提供了一种同步机制叫同步锁。iOS中实现同步锁机制的方案不止一种,这里主要介绍一下强大的GCD给出的方案----栅栏(barrier) 下面直接上代码:

图片描述

多运行几回看结果:
图片描述编程

图片描述

  • 能够看出来dispatch_barrier_async 可以在异步并发队列中对写入操做单个任务进行资源控制,也就是说确保了在写入任务操做3以前的并发任务肯定完成,而在写入任务操做3以后的并发任务等待了写入操做3完成以后才进行执行(即便让写入操做3的线程sleep了1秒的状况下。更能清晰得出上述结论)。
  • 以上就是GCD之栅栏(barrier函数)实现同步锁方案。若有不正确的地方,欢迎小伙伴指点,共同进步。
相关文章
相关标签/搜索