嗯,几点要指出:
1)当您使用@synchronized时,它将为iOS(或OSX)提供一个应用程序的全局异常框架.我在OSX上知道这一点,它在那里有一个性能影响,不能肯定地说在iOS上,但预期会相同.也就是说,这是使用大锤来打钉子 – 在其他选项可用之前,这种能力已经在前进了.我个人避免使用像瘟疫,并移植其他开源框架使用调度信号(我感谢Mike Ash(再次))!
2)您对“DISPATCH_QUEUE_CONCURRENT”的评论是一个红色的鲱鱼,因为iOS 4系统给了你3个并发队列,所以如果你需要定义你自己的,你真的会推送信封.随着dispatch,您有异步和同步,串行和并发,您可以等待,发送的组.在这里有这么丰富的你怎么会想到1).你使用越多阻止你越多使用它们!
编辑:我在iOS 4.3应用程序中使用自定义并发队列,以及所有的Mike Ash屏障技术. queue.h文件显示为可用:
__OSX_AVAILABLE_STARTING(__MAC_10_6,__IPHONE_4_0)
DISPATCH_EXPORT DISPATCH_CONST DISPATCH_WARN_RESULT DISPATCH_NOTHROW
dispatch_queue_t
dispatch_get_global_queue(dispatch_queue_priority_t priority,unsigned long flags);
/*!
* @const DISPATCH_QUEUE_SERIAL
* @discussion A dispatch queue that invokes blocks serially in FIFO order.
*/
#define DISPATCH_QUEUE_SERIAL NULL
/*!
* @const DISPATCH_QUEUE_CONCURRENT
* @discussion A dispatch queue that may invoke blocks concurrently and supports
* barrier blocks submitted with the dispatch barrier API.
*/
#define DISPATCH_QUEUE_CONCURRENT (&_dispatch_queue_attr_concurrent)