iPhone 操作队列NSOperationQueue
来源:互联网 发布:risksystem数据库 编辑:程序博客网 时间:2024/06/05 03:18
iPhone 操作队列NSOperationQueue
iPhone 本身也支持多线程开发,同样, NSThread 类提供对多线程开发的支持时也面临多线程的共享数据管理和死锁问题,于是 iPhone 也提供了类似于 Java 线程池的解决方案:任务队列 NSOperationQueue 类。
和 Java 语言的 Runnable 接口一样, iPhone 提供了 NSOperation 接口进行任务对象的封装,而通过将任务对象加入到 NSOperationQueue 队列, NSOperationQueue 队列会分配线程进行任务对象的执行,任务对象的执行通过 - (void)main 方法,下面是典型的任务对象和任务队列的实现:
@interface ThreadPoolTask:NSOperation
{
}
@end
@implementation ThreadPoolTask
- (void)main
{
NSLog(@”start execute”);
}
@end
和 Java 语言中一样,构造一个多线程池并添加任务对象到线程池中,线程池会调用任务对象的 - (void)main 方法执行任务, iPhone 中典型的任务队列的实现如下:
NSOperationQueue* threadPool = [[NSOperation alloc] init];
[threadPool setMaxConcurrentOperationCount:4];
for(int i = 1;i <= 5;i++)
{
NSString* task = [NSString stringWithFormat:@”task %d”,i];
NSLog(@“put %@”,task);
[threadPool add:([[ThreadPoolTask alloc] init])];
}
可以看到, iPhone 通过 NSOperationQueue 提供了一套类似于线程池的机制,通过它可以更加方便的进行多线程的并发操作,从而使得程序员从繁杂的多线程共享数据管理和死锁问题中解脱出来。
- iPhone 操作队列NSOperationQueue
- iPhone 操作队列NSOperationQueue
- 操作和操作队列 NSOperation和NSOperationQueue
- NSOperationQueue 队列
- NSOperationQueue队列
- iPhone多线程开发之线程队列NSOperationQueue与自定义Protocol
- NSOperationQueue队列的优先级
- NSOperationQueue队列的特点
- NSOperationQueue(多线程请求队列)
- iphone 开发NSOperation和NSOperationQueue
- NSOperationQueue串行操作
- NSOperationQueue 依赖操作
- 多线程之NSOperationQueue(线程队列)
- 多线程NSInvocation+队列NSOperationQueue+NSBlockOperation
- iPhone操作队列 VS Java线程池
- iPhone操作队列 VS Java线程池
- iPhone操作队列 VS Java线程池
- iPhone操作队列 VS Java线程池
- 【Android游戏开发二十五】在Android上的使用《贝赛尔曲线》!
- 有关innerHTML应该了解和注意的事(有些元素有innerHTML属性,但在IE中是只读的)
- 主题:ajaxfileupload ajax文件上传
- Android APK反编译
- JXTA项目命名规范
- iPhone 操作队列NSOperationQueue
- 用 Graphviz + CodeViz可视化函数调用
- 深度解析C申明
- android中xml解析
- 烦人的杀毒软件“程序更改...”警告
- 编码不一致 (936到utf-8) 发送xmlhttp 到url后中文乱码
- 惠普的开创式融合基础设计结构
- Android常用mimetype类型
- C语言文件操作函数