最大并发数

本文介绍如何使用Objective-C中的NSOperationQueue管理并发操作,包括设置最大并发数,通过添加不同类型的操作来实现任务的异步执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最大并发数

// 1.创建一个队列(非主队列)

    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
   
   
// 2.设置最大并发(最多同时并发执行3个任务)
    queue.
maxConcurrentOperationCount = 3;
   
   
// 3.添加操作到队列中(自动异步执行任务,并发)
   
NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^{
       
NSLog(@"下载图片1---%@", [NSThread currentThread]);
    }];
   
NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^{
       
NSLog(@"下载图片2---%@", [NSThread currentThread]);
    }];
   
NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{
       
NSLog(@"下载图片3---%@", [NSThread currentThread]);
    }];
   
NSBlockOperation *operation4 = [NSBlockOperation blockOperationWithBlock:^{
       
NSLog(@"下载图片4---%@", [NSThread currentThread]);
    }];
   
NSInvocationOperation *operation5 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(download) object:nil];
   
    [queue
addOperation:operation1];
    [queue
addOperation:operation2];
    [queue
addOperation:operation3];
    [queue
addOperation:operation4];
    [queue
addOperation:operation5];
    [queue
addOperationWithBlock:^{
       
NSLog(@"下载图片5---%@", [NSThread currentThread]);
    }];
    [queue
addOperationWithBlock:^{
       
NSLog(@"下载图片6---%@", [NSThread currentThread]);
    }];
    [queue
addOperationWithBlock:^{
       
NSLog(@"下载图片7---%@", [NSThread currentThread]);
    }];
    [queue
addOperationWithBlock:^{
       
NSLog(@"下载图片8---%@", [NSThread currentThread]);
    }];
    [queue
addOperationWithBlock:^{
       
NSLog(@"下载图片9---%@", [NSThread currentThread]);
    }];
   
    [queue
cancelAllOperations];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值