NSOperaton 是个抽象类,并不具备封装操作的能力,必须使用它的子类,下面是它的三种子类。
1 NSInvocationOperation
2 NSBlockOperation
3 自定义子类继承自NSOperation,实现-main方法
NSOperationQueue:(操作队列)有两种队列,主队列 通过 mainQueue获得,凡是放到主队列中的任务都将在主线程执行。非主队列 直接 alloc init 出来的队列。非主队列同时具备了并发和串行的功能,通过设置最大并发数属性来控制。在非主队列中,设置最大并发数maxConcurrentOperationCount 该属性的设置需要在任务添加到队列中之前进行设置,如果最大并发数等于1,那么该队列是串行的,如果大于1那么该队列是并行的,系统的最大并发数有个默认的值,为 -1 如果该属性的值设置为0 那么不会执行该任务。
NSOperation可以调用start方法来执行任务,但默认是同步执行的,如果将NSOperation添加到NSOperationQueue(操作队列)中,系统会自动异步执行NSOperation中的操作。