【问题标题】:Reader writer solution using custom concurrent queue objective c使用自定义并发队列目标 c 的读写器解决方案
【发布时间】:2018-06-27 23:56:52
【问题描述】:

如果我们使用自定义并发队列来解决这个问题,为什么我们使用 dispatch_sync 进行读取,使用 dispatch_async 和屏障进行写入?

我们不能也使用 dispatch_async 来读取吗?

这里有什么区别?

【问题讨论】:

  • 使用相关代码更新您的问题并阐明您的问题所在。
  • 我猜dispatch barrier 将确保数据块以正确的顺序归入文件。
  • 我怀疑为什么我们使用 dispatch_sync 进行读取操作?为什么不 dispatch_async
  • stackoverflow.com/a/54101127/1271826。是 Swift 的例子,但是所有的基本原理都是一样的。

标签: ios objective-c grand-central-dispatch


【解决方案1】:

我们不能也使用 dispatch_async 来读取吗?

不,dispatch_async 说“调度此代码块以异步运行,但不要等待它完成”。但是“读取器”的目的是提供对值的线程安全访问并返回该值。如果您使用dispatch_async,您可以在dispatch_async 块有机会运行之前从您的“阅读器”方法返回。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-21
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2012-10-14
    • 1970-01-01
    相关资源
    最近更新 更多