iOS 编码复习(八)(多线程6)—— NSOperation的简单使用

使用NSOpretionNSOperationQueue进行多线程开发就是将NSOperation放到NSOperationQueue这个队列中,线程就会依次启动。NSOperationQueue就是一个队列。而NSOperation是相当于一个抽象类,不能直接使用,所以我们一般都使用它的两个子类来实现:NSInvocationOperationNSBlockOperation,它们本质没有很大区别,只是block使用更方便一点。我们可以在viewDidLoad看看NSOperation提供了哪些API

NSOperation * operate = [[NSOperation alloc] init];

    if (!operate.isExecuting) {//是否执行执行中

        if (!operate.isReady) {//任务是否准备好

            [operate start];//开始执行

        }

    }

    //7.0之前isConcurrent判断同步、异步,7.0之后

    if ([UIDevice currentDevice].systemVersion.intValue>7.0) {

        if (operate.isAsynchronous) {

            NSLog(@"异步");

        }else{

            NSLog(@"同步");

        }

    }else{

        if (operate.isConcurrent) {

            NSLog(@"异步");

        }else{

            NSLog(@"同步");

        }

    }

    if (operate.isFinished) {//任务是否完成

        NSLog(@"完成");

    }

    if (operate.isCancelled) {//任务是否取消

        [operate cancel];//任务取消

    }

待续!

你可能感兴趣的:(多线程,ios,线程)