使用GCD中的栅栏函数实现多读单写功能

多读单写的意思就是:可以多个读者同时读取数据,而在读的时候,不能取写入数据。并且,在写的过程 中,不能有其他写者去写。即读者之间是并发的,写者与读者或其他写者是互斥的。
这里的写处理就是通过栅栏的形式去写。 就可以用 dispatch_barrier_sync(栅栏函数)去实现

  • dispatch_barrier_sync: (提交一个栅栏函数在执行中,它会等待栅栏函数执行完)
  • dispatch_barrier_async:.(提交一个栅栏函数在异步执行中,它会立马返回)

而 dispatch_barrier_sync 和 dispatch_barrier_async 的区别也就在于会不会阻塞当前线程

使用GCD中的栅栏函数实现多读单写功能