码迷,mamicode.com
首页 > 移动开发 > 详细

iOS多线程-NSOperation

时间:2014-09-19 23:51:56      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   使用   ar   div   art   

    前面了iOS的NSThread方法来实现多线程,这篇就简单的讲讲NSOperation和NSOperationQueue。

    NSOperation是一个抽象类,定义一个要执行的任务。NSOperationQueue是一个任务队列,帮助对NSOperation所定义的任务进行管理。当任务加入到任务队列后,会自动按照优先级和依赖关系自动运行。

    NSOperation是不能直接使用的,我们必须使用继承类。iOS提供了两个实现好的子类,分别是NSInvocationOperation和NSBlockOperation。NSOperation有个start方法,给你提供了一种不加入NSOperationQueue而运行任务的方式,当然这对于开发者来说要求更高一点。

    我还是用上一篇的那个功能做例子,上代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
        
    NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(downloadImage:) object:IMAGE_URL];
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [queue addOperation:operation];
}

    看上去很简单,仅仅就是创建任务,然后加入到队列。这个队列是个任务的pool,遵循生产者-消费者的关系,当有任务的时候会自动运行任务。我们可以使用setMaxConcurrentOperationCount:这个方法来设置这个queue里面的线程总数,默认值是-1,意思是没有限制。

iOS多线程-NSOperation

标签:style   blog   color   io   os   使用   ar   div   art   

原文地址:http://www.cnblogs.com/fivedragon/p/3879606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!