面试题答案
一键面试- 并发控制原理:
NSOperationQueue
是NSOperation
的管理队列,可以控制操作的执行顺序和并发数量。- 通过设置
NSOperationQueue
的maxConcurrentOperationCount
属性来限制同一时间执行的操作数量。
- 关键代码示例:
// 创建一个操作队列
NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
// 设置最大并发数为3
operationQueue.maxConcurrentOperationCount = 3;
// 假设有三个网络请求,这里用NSBlockOperation模拟
NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^{
// 网络请求1的代码,例如使用AFNetworking等网络框架发起请求
NSLog(@"Network request 1 is executing.");
}];
NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"Network request 2 is executing.");
}];
NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"Network request 3 is executing.");
}];
NSBlockOperation *operation4 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"Network request 4 is executing.");
}];
NSBlockOperation *operation5 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"Network request 5 is executing.");
}];
// 将操作添加到队列中
[operationQueue addOperation:operation1];
[operationQueue addOperation:operation2];
[operationQueue addOperation:operation3];
[operationQueue addOperation:operation4];
[operationQueue addOperation:operation5];
这样,NSOperationQueue
会保证同一时间最多有3个网络请求(这里用 NSBlockOperation
模拟)在执行。当有操作完成时,队列会自动启动下一个等待的操作。