Objective c @同步或串行调度队列

Objective c @同步或串行调度队列,objective-c,grand-central-dispatch,foundation,Objective C,Grand Central Dispatch,Foundation,在@synchronized块上使用串行调度队列(假定高优先级或默认优先级)来序列化对资源的访问时,是否有性能提升。所谓增益,我指的是由于同步机制本身造成的开销上的任何差异。当然。不过,在语义上也存在差异。@synchronized块在副表中使用递归的、异常安全的互斥体。所有这些属性都会导致一些额外的开销。dispatch_queue_t非常轻量级(特别是在使用dispatch_*_f避免块复制()时),但它是非递归的,不处理异常,也不保证特定的线程 就我个人而言,我认为递归锁是个坏主意,在Co

@synchronized
块上使用串行调度队列(假定高优先级或默认优先级)来序列化对资源的访问时,是否有性能提升。所谓增益,我指的是由于同步机制本身造成的开销上的任何差异。

当然。不过,在语义上也存在差异。@synchronized块在副表中使用递归的、异常安全的互斥体。所有这些属性都会导致一些额外的开销。dispatch_queue_t非常轻量级(特别是在使用dispatch_*_f避免块复制()时),但它是非递归的,不处理异常,也不保证特定的线程

就我个人而言,我认为递归锁是个坏主意,在Cocoa应用程序中不应该捕捉异常,所以@synchronized没有什么吸引力


未来编辑:较新的os___锁的开销甚至比任何一个都要低得多

回答得好,谢谢!