【问题标题】:Can I use pthread mutex under GCD concurrency context我可以在 GCD 并发上下文下使用 pthread 互斥锁吗
【发布时间】:2020-09-17 08:59:22
【问题描述】:

我的函数可以被其他程序使用 GCD 并发调用。我可以使用 pthread 互斥锁来锁定资源吗?

【问题讨论】:

  • “我可以使用 pthread 互斥锁来锁定资源吗?” ...您可以,但您为什么要这样做?有更好、更直观的机制。

标签: ios concurrency pthreads grand-central-dispatch


【解决方案1】:

当然。归根结底,在 GCD 下运行的代码只是在常规的旧操作系统线程上运行的代码,而 恰好 由 GCD 管理。正如@Daniel 指出的那样,如果您始终使用 GCD,则应该使用 GCD 的互斥机制(即串行队列),但如果您正在与使用 pthread 互斥锁来锁定资源的遗留代码进行互操作,您当然可以也可以在 GCD 执行的代码中执行此操作。

【讨论】:

    【解决方案2】:

    我不确定我是否完全理解你的问题(如果你能附上代码会很有帮助), 我建议阅读这篇短文 -gcd-queues-synchronization 也许您可以使用 GCD 确保该函数在同一个队列(线程)上运行,它会解决您的同步问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 2013-06-06
      • 1970-01-01
      • 2012-04-20
      相关资源
      最近更新 更多