美文网首页
GCD初理解

GCD初理解

作者: 天空总是很晴朗 | 来源:发表于2019-03-07 11:46 被阅读0次
    从16年开始就接触到GCD,项目中偶尔也用到过,都是看了别人简书,照搬过来的,没有什么探究。每次看到GCD的文章都会进去看一下,却始终没搞明白,甚至连线程,队列概念都很模糊。今天早上,再次翻看GCD,终于开始有些明白。此篇用以记录下自己的初次理解。
    首先区分两个概念:线程和队列。
    线程:app启动,便开始一条线程,这是程序的唯一主线程。多线程是指的在主线程下可以创建多条子线程执行耗时任务,防止阻塞主线程。同步,异步是线程的概念。
    队列:分为串行和并发两种。串行指程序按照写入顺序执行,并发指程序同时执行
    
    //同步
    dispatch_sync(quent, ^{
    
           NSLog(@"步骤1");
       });
    
    //异步
    dispatch_async(quent, ^{
    
           NSLog(@"步骤1");
       });
    
    //并发
    dispatch_queue_t quent = dispatch_queue_create("唯一标识", DISPATCH_QUEUE_CONCURRENT);
    
    //串行
    dispatch_queue_t quent = dispatch_queue_create("唯一标识", NULL);
    

    队列可以同步执行也可以异步执行。是否会开启子线程只与是否创建异步执行有关。

    相关文章

      网友评论

          本文标题:GCD初理解

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