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

iOS开发多线程之NSOperation NSOperationQueue

时间:2015-10-05 23:13:40      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

- (void)viewDidLoad {

    [super viewDidLoad];

    /*

     NSOperation和NSOperationQueue实现多线程编程

     步骤:将执行的操作封装到NSOperation对象中

          将NSOperation对象添加到NSOperationQueue中

          系统将NSOperation对象取出来

          将封装的操作放到一条新线程执行

     NSOperation的子类:

       NSInvocationOperation 封装 initWithTarget:selector:object:

                             执行 -start 默认在主线程只有添加到队列才会开启新线程即默认是同步执行

            NSBlockOperation 创建 +blockOperationWithBlock:^{}

                             添加操作 -addExecutionBlock:^{};可以多次添加 只要封装的操作大于1,就会异步

                             执行 start

                    子定义继承

     NSOperationQueue的作用:start可以执行但是是同步的,这个是异步的,只要添加进去自动执行操作,自动开启线程

     方法:1.addOperation: 2.addOperationWithBlock:^{}

     */

    /*并发数:同时执行的任务数

      最大并发数(一般2-3个最好)的相关方法:-(NSInteger)maxConcurrentOperationCount

                         -(void)setMaxConcurrentOperationCount:

      取消队列的操作:-(void)cancleAllOperation

                   -(void)cancle

      暂停和恢复:开启线程下载界面时,对UI会有影响,可在用户滑动界面时暂停

                -(void)setSuspended:

                -(BOOL)isSuspended当前状态

      操作优先级:设置NSOperation在queue的优先级

                -(NSOperationQueuePriority)queuePriority;

                -(void)setQueuePriority:

      操作依赖:[operationB addDependency:operationA];操作B依赖操作A,一定要在添加到队列之前设置

      操作的监听:-completionBlock:

                -setCompletionBlock:

      例子:operation.completionBlock=^{}上一个任务结束就会执行这个代码段

     */

}

iOS开发多线程之NSOperation NSOperationQueue

标签:

原文地址:http://www.cnblogs.com/haugezi/p/4856349.html

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