ios-NSOperation的服务质量和completionBlock

废话不多说直接上代码,我们设置优先级不能保证优先级高的线程以后比优先级低的线程先执行完,只能够说会被CPU分配到更多的机会去执行。

#import "ViewController.h"

@interface ViewController ()
@property (nonatomic,strong)NSOperationQueue * queue;
@end

@implementation ViewController
-(NSOperationQueue *)queue
{
    if(!_queue)
    {
        _queue=[NSOperationQueue new];
    }
    return _queue;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    NSBlockOperation * op1=[NSBlockOperation blockOperationWithBlock:^{
        for(int i=0;i<10;i++)
        {
        NSLog(@"op1 %d %@",i,[NSThread currentThread]);
        }
    }];
    //设置优先级最高
    op1.qualityOfService=NSQualityOfServiceUserInteractive;
    [self.queue addOperation:op1];
    //等待操作1结束之后才去执行,是执行在子线程上的
    [op1 setCompletionBlock:^{
        NSLog(@"%@",[NSThread currentThread]);
    }];
    NSBlockOperation * op2=[NSBlockOperation blockOperationWithBlock:^{
        for(int i=0;i<10;i++)
        {
            NSLog(@"op2 %d %@",i,[NSThread currentThread]);
        }
    }];
    //设置优先级最低
    op2.qualityOfService=NSQualityOfServiceBackground;
    op2.queuePriority=NSOperationQueuePriorityVeryLow;
    [self.queue addOperation:op2];
    
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值