iosGCD其一

//什么是GCD

//全称Grand Central Dispatch

//C语言,提供强大的函数

//GCD的优势

//GCD是苹果公司为多核的并行运算提供的解决方案

//GCD会自动利用更多的CPU内核(比如双核四核)

//GCD会自动管理线程的生命周期(创建线程,调度任务,销毁线程)

//

//GCD中有2个核心概念

//任务:执行什么操作

//队列:用来存放任务

//GCD的使用就2个步骤

//定制任务:确定想要做什么事情

//将任务添加到队列中

//GCD会自动将队列中的任务取出,放到对应的线程中执行

//任务的取出遵循队列的FIFO原则:先进先出,后进后出


//先导入库libdispatch  默认的

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

    //queue:队列

    //block 任务

    //将任务添加到队列里去

//    队列类型分为两大类

//    并发队列(Concurrent Dispatch Queue

//    可以让多个任务并发(同时)执行(自动开启多个线程同时执行任务)

//    并发功能只有在异步(dispatch_async)函数下才有效

    

//    串行队列(Serial Dispatch Queue

//    让任务一个接着一个地执行(一个执行完毕才到下一个)

//    同步和异步主要影响:能不能开启新的线程

//    同步:只有在当前线程中执行任务,不具备开启新的线程能力

//    异步:可以在新的线程中执行任务,具备开启新线程的能力

//    

//    并发和串行主要影响:任务的执行方式

//    并发:允许多个任务并发(同时)执行

//    串行:一个任务执行完毕后,再执行下一个任务

    //第一步 创建一个并发队列

    //label:相当于队列的名字

    //第二个参数:队列类型,并发DISPATCH_QUEUE_CONCURRENT队列

    dispatch_queue_t queue = dispatch_queue_create("com.520.queue", DISPATCH_QUEUE_CONCURRENT);

    

    //第二不 将任务加入队列

    dispatch_async(queue, ^{

        for (NSInteger i = 0; i < 10; i++) {

      

        NSLog(@"1-----%@",[NSThread currentThread]);

        }

    });//异步

   // 异步,可以在新的线程中执行任务,具备开启新线程的能力

    dispatch_async(queue, ^{

        

        for (NSInteger i = 0; i < 10; i++) {

            

            NSLog(@"2-----%@",[NSThread currentThread]);

        }

    });

    dispatch_async(queue, ^{

        

        for (NSInteger i = 0; i < 10; i++) {

            

            NSLog(@"3-----%@",[NSThread currentThread]);

        }


    });

//    利用GCD开启线程:这是其一种组合情况,异步函数搞并发队列

//    由于你是异步具备开启新线程的能力,

//    由于是并发允许多个任务并发(同时)执行

    

    

    

    

    

    

   // dispatch_sync(<#dispatch_queue_t queue#>, <#^(void)block#>)//同步

    //同步 只有在当前线程中执行任务,不具备开启新线程的能力

    

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值