Operation 可以添加依赖
[operation1 addDependency:operation2];</span>
这样保证operation1在operation2之后执行.有添加依赖就有删除依赖
[operation1 removeDependency:operation2];</span>
operation还可以设置优先级
[operation1 setQueuePriority:NSOperationQueuePriorityLow];</span>
优先级可以选择
typedef NS_ENUM(NSInteger, NSOperationQueuePriority) {
NSOperationQueuePriorityVeryLow = -8L,
NSOperationQueuePriorityLow = -4L,
NSOperationQueuePriorityNormal = 0,
NSOperationQueuePriorityHigh = 4,
NSOperationQueuePriorityVeryHigh = 8
};
取消operation
[operation1 cancel];
Operation 符合KVO通知,可以在线程中了解操作到哪一步。
Operation KVO的状态有
- isCancelled
- isConcurrent
- isExecuting
- isFinished
- isReady
- dependencies
- queuePriority
- completionBlock
- 注意多线程造成死锁,
Operation的并发数是由系统决定的,系统会控制有多少并发数。