Objective-C的NSOperation多线程类基本使用指南

2020-01-14 19:04:47王旭
易采站长站为您分析Objective-C的NSOperation多线程类基本使用指南,谈到了Operations的执行顺序和并发量等设置操作,需要的朋友可以参考下  

NSOperation

一、NSOperation
1.简介
NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作。
NSOperation本身是抽象基类,因此必须使用它的子类,使用NSOperation子类的方式有2种:
1> Foundation框架提供了两个具体子类直接供我们使用:NSInvocationOperation和NSBlockOperation
2> 自定义子类继承NSOperation,实现内部相应的方法

2.执行操作
NSOperation调用start方法即可开始执行操作,NSOperation对象默认按同步方式执行,也就是在调用start方法的那个线程中直接执行。NSOperation对象的isConcurrent方法会告诉我们这个操作相对于调用start方法的线程,是同步还是异步执行。isConcurrent方法默认返回NO,表示操作与调用线程同步执行

3.取消操作
operation开始执行之后, 默认会一直执行操作直到完成,我们也可以调用cancel方法中途取消操作

复制代码
[operation cancel];  
4.监听操作的执行
如果我们想在一个NSOperation执行完毕后做一些事情,就调用NSOperation的setCompletionBlock方法来设置想做的事情
复制代码
operation.completionBlock = ^() {  
    NSLog(@"执行完毕");  
};  
或者
复制代码
[operation setCompletionBlock:^() {  
    NSLog(@"执行完毕");  
}];  
二、NSInvocationOperation
1.简介