IOS 多线程初探(二) - Operation Object
来源:互联网 发布:网络的利与弊ppt图片 编辑:程序博客网 时间:2024/05/29 04:34
上次简单介绍了使用NSThread来创建线程的方法。今天简单介绍使用Operation Object来创建线程
Operation Object简介
将要执行的任务(即函数)封装成操作对象NSOperation,并将对象放置到NSOperationQueue中。可以设置这些任务的执行顺序和依赖关系。
- 用NSOperation来创建线程
新建一个类继承NSOperation,覆盖main方法,然后在需要创建线程的地方实例化新类,并加入到NSOperationQueue中。
@interface MyOperation : NSOperation @end @implementation MyOperation - (void)main { xxxxxx.... } @end - (void) function{ MyOperation *myope = [[MyOperation alloc] init]; NSOperationQueue *q = [[NSOperationQueue alloc] init]; [q addOperation: myope];}
- 使用NSInvocationOperation创建线程
NSInvocationOperation也是一个target-action类型的操作,指定对象,对象的动作,动作的参数。
- (void) function{ NSInvocationOperation *iop = [[NSInvocationOperation alloc] initWithTarget: self selector:@selector(action) object:nil]; NSOperationQueue *q = [[NSOperationQueue alloc] init]; [q addOperation: iop];} - (void)action{ xxxxx.....}
- 使用NSBlockOperation创建线程
- (void)functon{ NSBlockOperation *bo = [NSBlockOperation blockOperationWithBlock :^{ xxxxx.....//线程操作 }]; NSOperationQueue *q = [[NSOperationQueue alloc] init]; [q addOperation: bo];}
- 设置线程依赖关系
可以设置线程执行顺序,比如一个线程的执行依赖于另一个线程的结束。以NSBlockOperation为例,其它Operation操作一样。
NSBlockOperation* o1;NSBlockOperation* o2;[o2 addDependency: o1];// o2线程依赖于o1,o1结束时o2才开始
0 0
- IOS 多线程初探(二) - Operation Object
- iOS多线程1 Operation
- iOS 多线程 (GCD,Operation,Runloop)
- iOS 多线程 (GCD,Operation,Runloop)
- iOS 多线程 (GCD,Operation,Runloop)
- 多线程初探(二)
- iOS多线程编程篇: Operation 对象 与 Operation Queue
- iOS开发初探(二)
- iOS 多线程的使用(Operation)
- iOS多线程编程之Operation Queues
- IOS 多线程初探(一) - NSThread
- IOS 多线程初探(三) - GCD
- 多线程Operation
- 《Object-C高级编程 iOS与OS X多线程和内存管理》读书笔记之二
- 初探Object
- Notes Excel Object Operation
- iOS 多线程pthread 二
- iOS多线程 (二)-----------NSOperation
- Linux中的EAGAIN含义
- VS2015编写的MFC上位机,波特率可调,可动态显示曲线,可显示三维
- 集合工具类 Collections
- 动态导入js引发的问题
- linux命令crontab
- IOS 多线程初探(二) - Operation Object
- JVM调优总结(六)-分代垃圾回收详述2
- Windbg下无法显示dbgPrint输出的信息
- Python AES使用
- 在UITextView中插入图片
- Android APP权限之sharedUserId和签名
- JVM调优总结(七)-典型配置举例1
- LeetCode - Add Two Numbers
- JVM调优总结(八)-典型配置举例2