您的位置:首页 > 移动开发 > Swift

Swift - 多线程实现方式(2) - NSOperation和NSOperationQueue

2015-09-26 18:56 435 查看
1,Swift继续使用Object-C原有的一套线程,包括三种多线程编程技术:

(1)NSThread

(2)Cocoa NSOperation(NSOperation和NSOperationQueue)

(3)Grand Central Dispath(GCD)

2,本文着重介绍Cocoa NSOperation

Cocoa
NSOperation不需要关心线程管理和数据同步的事情,可以把精力放在自己需要执行的操作上。相关的类有NSOperation和
NSOperationQueue。其中NSOperation是个抽象类,使用它必须用它的子类,可以实现它或者使用它定义好的子
类:NSBlockOperation。创建NSOperation子类的对象,把对象添加到NSOperationQueue队列里执行。

3,使用NSOperation的两种方式
(1)直接用定义好的子类:NSBlockOperation。

(2)继承NSOperation

然后把NSOperation子类的对象放入NSOperationQueue队列中,一旦这个对象被加入到队列,队列就开始处理这个对象,直到这个对象的所有操作完成,然后它被队列释放。

4,设置运行队列并发数

NSOperationQueue队列里可以加入很多个NSOperation,可以把NSOperationQueue看做一个线程池,可往线程池中添加操作(NSOperation)到队列中。
可以设置线程池中的线程数,也就是并发操作数。默认情况下是-1,-1表示没有限制,这样可以同时运行队列中的全部操作。

5,取消队列所有操作

6,每个NSOperation完成都会有一个回调表示任务结束

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: