将调度障碍(GCD)添加到自定义队列但不添加到全局并发队列

时间:2015-12-31 01:46:24

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

我在某处读到了调度障碍应该添加到自定义队列而不是全局队列。我没有得到确切的原因。感谢。

1 个答案:

答案 0 :(得分:1)

全局队列是进程中的共享资源。系统框架需要能够依赖于不受未知联锁影响的全局队列,否则低级框架进程可能会受到更高级别用户活动的阻碍,可能导致死锁。 GCD使开发人员能够在全局队列上建立任意并发抽象和互锁,因此在全局队列中抱怨他们缺席是一个没有实际意义的问题。询问为什么你不能在全局队列上遇到障碍就像问为什么先发制人的多任务处理系统上的一个进程可以阻止所有其他进程。