GCD初理解

从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);

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从哪说起呢? 单纯讲多线程编程真的不知道从哪下嘴。。 不如我直接引用一个最简单的问题,以这个作为切入点好了 在ma...
    Mr_Baymax阅读 2,818评论 1 17
  • 文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。通过本文,您将了解到: 1. GCD 简介 2. G...
    晓_我想去环游世界阅读 1,159评论 2 8
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,132评论 1 32
  • 思想家爱默生曾说:“人类可以分为两种:一种是属于过去的人,一种属于将来的人;一种是维持现状者,一种是改变现状者。 ...
    多肉安安阅读 235评论 0 0
  • 一个惊艳了时光, 一个温柔了岁月, 爱得深,爱得早, 都不如爱得刚刚好。 你不用多好,我喜欢就好, 我没有很好,你...
    AKOKO烘焙阅读 283评论 0 1