NSOperation和NSOperationQueue
来源:互联网 发布:js百度地图绘制轨迹 编辑:程序博客网 时间:2024/05/05 16:15
使用这2个类,我们不用考虑线程的生命周期,同步,加锁等问题.
默认情况下,NSOperation不具备封装操作的能力,必须使用它的子类,使用NSOperation子类的方式一般有3种:
1NSInvocationOperation
2NSBlockOperation
3手工实现一个NSOperation的子类,并重写NSOperation对象的main方法
注意:
1如果没把NSInvocationOperation或者NSBlockOperation添加到NSOperationQueue中去,NSInvocationOperation或者NSBlockOperation中的操作方法,默认将会被同步执行
2如果向NSBlockOperation中添加了多个block,既使没把NSBlockOperation添加到NSOperationQueue中去,也会另外的开辟新的线程,并且并发的执行这几个block
3一旦把NSInvocationOperation或者NSBlockOperation添加到NSOperationQueue,
操作代码便会立即异步并发执行,而不用显式的调用
start方法
技巧:
可以在操作代码中,调用[NSThread currentThread]方法,来查看一下到底队列为这许多操作,总共开了多少条线程
为了防止几个操作并发的执行,可以给NSOperation对象添加相互的依赖:
addDependency方法
1甚至,处于不同队列里的操作对象间,也是可以添加相互的依赖的
2注意,不能交叉依赖,造成依赖的死循环
同时并发的线程数太多,内存和CPU占用也会更多,为了节约系统资源,可以设置队列中的最大线程并发数:
[queue setMaxConcurrentOperationCount:2];
- Cocoa:NSOperation和NSOperationQueue
- Cocoa:NSOperation和NSOperationQueue
- NSOperation和NSOperationQueue
- Cocoa: NSOperation和NSOperationQueue
- Cocoa:NSOperation和NSOperationQueue
- NSOperation和NSOperationQueue
- NSOperation和NSOperationQueue
- Cocoa:NSOperation和NSOperationQueue
- NSOperation和NSOperationQueue
- NSOperation和NSOperationQueue
- NSOperation和NSOperationQueue
- Cocoa:NSOperation和NSOperationQueue
- NSOperation和NSOperationQueue
- NSOperationQueue和NSOperation
- NSOperation 和 NSOperationQueue
- NSOperation和NSOperationQueue
- 231,NSOperation和NSOperationQueue
- 多线程NSOperation和NSOperationQueue
- hadoop简介之代码编译
- java collection map
- NSThread__队列间的跳转
- igmpv3
- Visual Studio 常用快捷键
- NSOperation和NSOperationQueue
- 架构师之路之起点
- 使用apache common-io 监控文件变化
- python抓联想词练习
- 自定义NSOperation__最常用的方式
- 不以跨线程访问自动释放池
- [WPF] TextBox Metro风格样式
- Visual Studio 常用快捷键 (二)
- 六款常用的linux C/C++ IDE