ios线程概念运用

作者: Dayu大鱼 | 来源:发表于2016-07-19 10:46 被阅读45次

    GCD 整个使用的格式为:

    1. 先确定要创建的队列: (串行 并行)
    2. 队列中该线程是同步还是异步执行线程()
    3. 执行什么线程看你需要做什么任务(主线程或者是子线程都是可以的)
     /**
         
         分析: 1,2 在子线程顺序执行->串行队列,异步执行
         */
        
        //创建串行队列
        dispatch_queue_t serialQueue=dispatch_queue_create("serialQueue", DISPATCH_QUEUE_SERIAL);
        dispatch_async(serialQueue, ^{
            [self task:1];
            [self task:2];
            
        });
        
        //完成1 2 之后通知主线程3 4 并顺序执行
        
        dispatch_async(serialQueue, ^{
           dispatch_async(dispatch_get_main_queue(), ^{
               [self task:3];
           });
            
            dispatch_async(dispatch_get_main_queue(), ^{
                [self task:4];
            });
        });
        
        
        
    }
    
    -(void)task:(int)number {
        NSLog(@"%@  task  %d ",[NSThread currentThread],number);
    }
    
    
    运行结果为:
    2016-07-19 10:37:20.585 gcd综合练习[5190:2615643] <NSThread: 0x7faa12d0e380>{number = 2, name = (null)}  task  1 
    2016-07-19 10:37:20.585 gcd综合练习[5190:2615643] <NSThread: 0x7faa12d0e380>{number = 2, name = (null)}  task  2 
    2016-07-19 10:37:20.585 gcd综合练习[5190:2615606] <NSThread: 0x7faa12d06860>{number = 1, name = main}  task  3 
    2016-07-19 10:37:20.586 gcd综合练习[5190:2615606] <NSThread: 0x7faa12d06860>{number = 1, name = main}  task  4 
    
    

    相关文章

      网友评论

        本文标题:ios线程概念运用

        本文链接:https://www.haomeiwen.com/subject/ypymjttx.html