NSInvocationOperation和NSBlockOperation

NSInvocationOperation
NSInvocationOperation * op = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(invocation) object:nil];
    [op start];

-(void)invocation {
    NSLog(@"线程 ------%@",[NSThread currentThread]);
    NSLog(@"open");
}

线程 ------<NSThread: 0x60000212cc80>{number = 1, name = main}
open

不具备开启线程的能力 顺序执行

NSBlockOperation
NSBlockOperation * opOne = [NSBlockOperation blockOperationWithBlock:^{
        NSLog(@"线程 ------%@",[NSThread currentThread]);
        NSLog(@"一号开始执行");
        
    }];
    [opOne addExecutionBlock:^{
        NSLog(@"线程1 ------%@",[NSThread currentThread]);
        NSLog(@"二号开始执行");
    }];
线程1 ------<NSThread: 0x6000000f6ac0>{number = 3, name = (null)}
线程 ------<NSThread: 0x6000000aca00>{number = 1, name = main}
二号开始执行
一号开始执行

可以看出来 添加了 addExecutionBlock 具备开启子线程的能力 任务全部执行完毕 才会结束 开启多少子线程 由系统决定

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS多线程编程 基本知识 1. 进程(process) 进程是指在系统中正在运行的一个应用程序,就是一段程序的执...
    陵无山阅读 6,120评论 1 14
  • 1. NSOperation、NSOperationQueue 简介 NSOperation、NSOperatio...
    稻春阅读 872评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,142评论 1 32
  • 听说过物品套利,没想到社会关系也能套利。 社会关系套利既可以应用于工作中,也可以应用于生活中。它的形式大致是这样的...
    鹰子的笔记本阅读 545评论 0 0
  • 引领谈话不是容易事,所谓“会的不难难的不会”,需要跳出时空局限性自我,抓住“倾听、会意、共情、反馈”四步骤,体会“...
    王明鹏阅读 527评论 0 7