【发布时间】:2014-04-25 11:22:19
【问题描述】:
我有 10 个需要执行一些后台任务的类实例。这应该对实例连续发生,但可能是并发的,因为实例可以彼此独立地工作。
在速度和电池方面哪个最划算?我什么时候需要担心我创建了太多队列?
这个(A)?
- (dispatch_queue_t)queue
{
static dispatch_queue_t queue;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
queue = dispatch_queue_create("no.agens.someclass.somequeue", DISPATCH_QUEUE_SERIAL);
});
return queue;
}
还是这个(B)?
// assume read-only property of 'queue' is defined
- (dispatch_queue_t)queue
{
if(_queue == nil)
{
_queue = dispatch_queue_create("no.agens.someclass.somequeue", DISPATCH_QUEUE_SERIAL);
}
return _queue;
}
【问题讨论】: