码迷,mamicode.com
首页 > 编程语言 > 详细

多线程—2

时间:2015-08-27 21:00:57      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

NSOperation 是一个基类 (抽象类(比如NSObject))不能够直接使用 必须使用它的子类 它默认是在当前线程进行操作

常与 NSOperationQueue(线程队列)一起使用,在与线程队列一起使用的时候会自动开辟线程进行操作,不用手动操作(*****)。 如果只是单独使用 NSOperation 必须手动启用

NSOperation 系统提供了两个子类NSInvocationOperation,NSBlockOperation。

单一使用 Operation 他是同步执行

NSBlockOperation的操作数大于1的时候会开辟线程去执行操作

初始化:NSInvocationOperation  

 技术分享

当它单独使用的时候记得使用手动操作:[invocation start];

invocation实现的方法:

-(void)act:(id)sender{

    NSLog(@"%@\n%@",[NSThread currentThread],sender);

//,[NSThread currentThread] 是哪一个线程

}

 

初始化NSBlockOperation: 

技术分享 

添加操作

NSBlockOperation的操作数大于1的时候会开辟线程去执行操作   [blockOperation addExecutionBlock:^{ [self act:@"  添加操作”]; }];

 

单独使用同样需要使用手动操作: 

[blockOperation start];

NSOperationQueue(线程队列) 管理线程 (默认会开辟线程去执行)

    不用手动去启动线程(****)

初始化NSOperationQueue

 设置线程队列的 最大并发数 (最多可以有效几个操作 ,同时操作),即:如果 queque.maxConcurrentOperationCount = 0 ,那就只有主线程在执行

    queque.maxConcurrentOperationCount = 2;

    添加操作(当添加操作的时候不需要再去手动操作)

    [queque addOperation:invocation];(当invocation添加到queque时,把之前的[invocation start];注释掉)

 

多线程—2

标签:

原文地址:http://www.cnblogs.com/popper123/p/4764286.html

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