GCD 多线程

#pragma mark ---- 用异步函数往并发队列中添加任务

- (void)setUpSuperView{

  

    

    

    //获取全局的并发队列

    

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    //添加任务到队列中,就可以执行任务了 异步函数,具备开启新线程的能力

    

    dispatch_async(queue, ^{

        NSLog(@"下载图片1----%@",[NSThread currentThread]);

    });

    

    

    

    dispatch_async(queue, ^{

          NSLog(@"下载图片2----%@",[NSThread currentThread]);

    });

    

    

    dispatch_async(queue, ^{

         NSLog(@"下载图片3----%@",[NSThread currentThread]);

    });

    //打印主线程

 

    NSLog(@"主线程----%@",[NSThread mainThread]);

    

    

    //总结:同时开启三个子线程

    

}



#pragma mark ---用异步函数往串行队列中添加任务

- (void)setUpTowSuperView{

    

    

    //创建串行队列

    dispatch_queue_t queue = dispatch_queue_create("zhangyu", NULL);

    

    //添加任务到队列中执行

    dispatch_async(queue, ^{

        NSLog(@"下载图片1----%@",[NSThread currentThread]);

    });

    

    dispatch_async(queue, ^{

        NSLog(@"下载图片2----%@",[NSThread currentThread]);

    });

    

    dispatch_async(queue, ^{

        NSLog(@"下载图片3----%@",[NSThread currentThread]);

    });

     NSLog(@"主线程----%@",[NSThread mainThread]);

    

    

    //总结:会开启线程,但是只会开启一条线程

}

//丘吉尔说:我最辉煌的成就,是我竟能说服我的妻子嫁给我











#pragma mark ---用同步函数往并发队列中添加任务

- (void)setUpThreeSuperView{

    

    

    

    //获取全局的并发队列

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    

    //添加任务到队列中执行

    dispatch_sync(queue, ^{

        NSLog(@"下载图片1----%@",[NSThread currentThread]);

    });

    

    dispatch_sync(queue, ^{

        NSLog(@"下载图片2----%@",[NSThread currentThread]);

    });

    

    

    dispatch_sync(queue, ^{

        NSLog(@"下载图片3----%@",[NSThread currentThread]);

    });

    

    

    //打印主线程

    NSLog(@"主线程----%@",[NSThread mainThread]);

    

    

    //总结:不会开启新的线程,并发队列失去了并发的功能

    

    

}




#pragma mark --- 用同步函数往串行队列中添加任务

- (void)setUpFourSuperView{

    

    

    

    //创建串行队列

    dispatch_queue_t queue = dispatch_queue_create("zhangyu", NULL);

    

    //添加任务到队列中执行

    

    dispatch_sync(queue, ^{

         NSLog(@"下载图片1----%@",[NSThread currentThread]);

    });

    

    dispatch_sync(queue, ^{

         NSLog(@"下载图片2----%@",[NSThread currentThread]);

    });

    

    

    dispatch_sync(queue, ^{

        NSLog(@"下载图片3----%@",[NSThread currentThread]);

    });

    

    

    //打印主线程

     NSLog(@"主线程----%@",[NSThread mainThread]);

    

    

    //总结:不会开启新的线程

    


}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值