`
l241002209
  • 浏览: 88382 次
文章分类
社区版块
存档分类
最新评论

NSOperationQueue队列的优先级

 
阅读更多

使用NSOperationQueue简化多线程开发中介绍了iOS的操作队列使用方法。这里补充一下队列的优先级功能。

假设现在队列中有多个操作(NSOperation),现在再向队列中加入新的操作,并且希望新增加的操作排在未执行操作的最前面。这时就需要设置操作的优先级了。

编写了个最简单的NSOperation,头文件:

#import <Foundation/Foundation.h>

@interface MyOperation : NSOperation{
NSString *name;
}

@property (nonatomic,retain) NSString *name;

@end

实现文件:

#import "MyOperation.h"

@implementation MyOperation

@synthesize name;

-(void) main{
NSLog(@"run operation: %@",name);
[NSThread sleepForTimeInterval:3];
}

@end

在控制器里创建3个实例:

- (void)viewDidLoad {
[super viewDidLoad];
queue=[[NSOperationQueue alloc] init];
[queue setMaxConcurrentOperationCount:1];

MyOperation *o1=[[[MyOperation alloc] init] autorelease];
o1.name=@"o1";
[queue addOperation:o1];

MyOperation *o2=[[[MyOperation alloc] init] autorelease];
o2.name=@"o2";
[queue addOperation:o2];

[NSThread sleepForTimeInterval:1];

MyOperation *o3=[[[MyOperation alloc] init] autorelease];
o3.name=@"o3";
[o3 setQueuePriority:NSOperationQueuePriorityHigh];
[queue addOperation:o3];

运行效果:

2011-07-26 14:47:23.822 NSOperationQueueDemo[27495:6003] run operation: o1
2011-07-26 14:47:26.823 NSOperationQueueDemo[27495:6003] run operation: o3
2011-07-26 14:47:29.824 NSOperationQueueDemo[27495:6203] run operation: o2


http://blog.csdn.net/diyagoanyhacker/article/details/6666075


分享到:
评论

相关推荐

    NSOperation_NSOperationQueue_Demo

    NSOperation NSOperationQueue demo 项目讲述了 NSOperation 和 NSOperationQueue 怎么使用。适合学习

    多线程GCD,NSThread,NSOperationQueue,详细解释Demo

    该demo详细解释了gcd NSThread NSOperationQueue的用法.详细解释了子线程中如何刷新UI

    NSOperationQueue-CompletionBlock:NSOperationQueue的完成块

    NSOperationQueue + CompletionBlock NSOperationQueue的完成块。 乍看上去 Swift import NSOperationQueue_CompletionBlock let queue = NSOperationQueue () queue. completionBlock = { NSLog ( " I'm done! ...

    TRVSURLSessionOperation:NSURLSession和NSOperationQueue一起工作

    计划网络请求(即运行请求A然后请求B,并赋予请求优先级) 限制并发网络请求的数量(例如,在任何给定时间运行5个网络请求) 以与其他NSOperation对象相同的方式控制这些网络操作(例如,您有一个NSOperation创建...

    队列:iOS的持久后台作业队列

    尽管NSOperation和NSOperationQueue在某些重复性问题上很好地工作,而在其他问题上则可以使用NSInvocation ,但iOS并未真正包含一组用于轻松管理大量任意背景任务的工具。 EDQueue提供了一个高级接口,用于使用和...

    object-c开发的iOS仿抖音app

    第一部分为抖音个人主页实现,包含NSOperationQueue多队列解析webp动图、网络资源拓扑云框架搭建。第二部分围绕AVPlayerLayer展开,涉及网络视频边播放边下载、 UITableView控制多个视频源播放。第三部分则为...

    OptimizedNetworking:iOS 项目展示如何使用 NSOperationQueue 优化网络

    该项目旨在提供一种优化网络的简单方法,重点是使用 NSOperationQueue,而不是简单地使用 NSURLConnection 的异步 API 或使用 GCD 将工作卸载到辅助队列,后者对并发连接的数量和能力的控制较少取消。 批量下载多个...

    iOS应用程序中通过dispatch队列控制线程执行的方法

    GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用。所以说,结合block实现的GCD,把函数闭包(Closure)的特性发挥得...

    抖音 iOS Object-C版,抖音demo适配了iphone、ipad

    第一部分为抖音个人主页实现,包含NSOperationQueue多队列解析webp动图、网络资源二级缓存框架搭建。第二部分围绕AVPlayerLayer展开,涉及网络视频边播放边下载、UITableView控制多个视频源播放。第三部分则为...

    ios-多线程实现(摇奖机).zip

    利用 NSOperationQueue 实现摇奖机功能。 掌握 NSOperationQueue 的暂停功能结合业务实现效果

    SSOperations:方便的NSOperationQueue和NSBlockOperation助手

    方便的NSOperationQueue和NSBlockOperation帮助器。 SSOperations在我的应用程序各种操作提供了。 安装 与安装。 添加到您的Podfile : pod 'SSOperations', :head # YOLO SSBlockOperation和...

    YXQueue:适用于iOS的OOP和轻松使用作业队列

    YXQueue适用于iOS的OOP和轻松使用作业队列YXQueue被封装用于NSOperation。 线程的管理器和调用者按YXQueue划分。 使用它,开发人员将不会太在意线程管理,而只是关注如何创建作业和实现委托。建筑学...

    GrandSwiftDispatch:不那么盛大,不那么Swift,也不那么快

    NSOperationQueue只是类型别名为Queue以保存击键。 访问队列 主队列可通过Queue.Main访问 当前队列可通过Queue.Current访问 每个服务质量都有一个共享队列: 通过Queue.Interactive用户交互操作 用户通过Queue.User...

    NSOperationDependency

    NSOperationDependency依赖关系需求:用户登录,付费,下载,通知用户 按顺序执行解决方案//设置依赖关系,这里是并发效率是比GCD得串行队列要好!...[[NSOperationQueue mainQueue] addOperation:op4];

    iOS多线程应用开发中使用NSOperation类的基本方法

    NSOperation的作⽤:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤: (1)先将需要执行的操作封装到一个NSOperation对象中 (2)然后将NSOperation...

    iOS多线程与网络开发之NSOperation示例代码

    配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤 先将需要执行的操作封装到一个NSOperation对象中 然后将NSOperation对象添加到NSOperationQueue中 ...

    iOS并发编程指南.pdf.zip

    iOS并发编程指南, 深入讲解iOS在编发编程中常用的GCD、NSOperation、NSOperationQueue的使用原理

    ConnectionManager:轻松管理iOS和OSX中的连接

    该框架使用NSOperationQueue执行并发连接,并使用异步NSOperation操纵排队的调用。 ##使用示例 ###配置连接管理器 首先,让我们获取连接管理器的实例: AMConnectionManager *connectionManager = ...

    GCD基本概念

    从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。

    LRVariadicPerformSelector:简单的NSObject类别,可使用可变参数执行选择器

    同样,这个简单的类别允许选择注入我们要在其上执行选择器的队列( dispatch_queue_t或NSOperationQueue )。安装使用CocoaPods 将LRVariadicPerformSelector添加到您的Podfile: pod 'LRVariadicPerformSelector' ...

Global site tag (gtag.js) - Google Analytics