【发布时间】:2020-09-17 08:59:22
【问题描述】:
我的函数可以被其他程序使用 GCD 并发调用。我可以使用 pthread 互斥锁来锁定资源吗?
【问题讨论】:
-
“我可以使用 pthread 互斥锁来锁定资源吗?” ...您可以,但您为什么要这样做?有更好、更直观的机制。
标签: ios concurrency pthreads grand-central-dispatch
我的函数可以被其他程序使用 GCD 并发调用。我可以使用 pthread 互斥锁来锁定资源吗?
【问题讨论】:
标签: ios concurrency pthreads grand-central-dispatch
当然。归根结底,在 GCD 下运行的代码只是在常规的旧操作系统线程上运行的代码,而 恰好 由 GCD 管理。正如@Daniel 指出的那样,如果您始终使用 GCD,则应该使用 GCD 的互斥机制(即串行队列),但如果您正在与使用 pthread 互斥锁来锁定资源的遗留代码进行互操作,您当然可以也可以在 GCD 执行的代码中执行此操作。
【讨论】:
我不确定我是否完全理解你的问题(如果你能附上代码会很有帮助), 我建议阅读这篇短文 -gcd-queues-synchronization 也许您可以使用 GCD 确保该函数在同一个队列(线程)上运行,它会解决您的同步问题。
【讨论】: