NSOperationQueue不限制并发操作

时间:2014-09-09 16:06:12

标签: ios objective-c nsoperation nsoperationqueue

NSOperationQueue *myQueue = [[NSOperationQueue alloc] init];
    myQueue.MaxConcurrentOperationCount = 1;

    [myQueue addOperationWithBlock: ^ {
        NSLog(@"started");
        [self aVeryLongOperation];
    }];

并发操作的数量限制为一个,但是它们都开始了。假设添加了三个操作,控制台中的输出如下:

2014-09-09 17:51:02.705 Sample App [7356:7e03] started
2014-09-09 17:51:03.840 Sample App [7356:7e03] started
2014-09-09 17:51:04.495 Sample App [7356:7e03] started

如何将并发操作的数量实际限制为一个?

1 个答案:

答案 0 :(得分:1)

事情就是在函数aVeryLongOperation内部产生了一个后台线程,完成了所有工作。因此,该函数在产生该线程后立即返回,并且从队列中获取下一个任务以执行。