技术贴:2.初识GCD

作者: Xcode10 | 来源:发表于2016-06-29 22:20 被阅读46次

GCD全程Grand Central Dispatch

摒弃掉了线程中复杂的创建线程和开启线程的繁琐。只需要关注最关键的两个步骤:任务和队列

同步方式执行任务:

dispatch_sync

异步的方式执行任务:

dispatch_async

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

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

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

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

          串行队列 :让任务一个接着一个进行,一个任务完成才能执行下一个任务。

四种队列组合:

异步并发: dispatch_async +DISPATCH_QUEUE_CONCURRENT可以同时开启多条线程。

同步并发:dispatch_sync +DISPATCH_QUEUE_CONCURRENT 不会创建新的线程(并发并未体现出来,实现效果和同步串行一样,但是会更加消耗性能。)

异步串行:dispatch_async+DISPATCH_QUEUE_SERIAL 会开启新的线程,但是执行完一个任务才回执行下一个。

同步串行:dispatch_sync+DISPATCH_QUEUE_SERIAL 不会开启新的线程且任务按顺序执行完。

主队列: dispatch_get_main_queue + 异步 不管是不是并行还是串行,都会放至主线程中执行!

             dispatch_get_main_queue + 同步 会导致卡死。

GCD中保证代码在整个程序中至运行一次: dispatch_once(&onceToken,^ {

           // 只运行一次的代码

});

相关文章

  • 技术贴:2.初识GCD

    GCD全程Grand Central Dispatch 摒弃掉了线程中复杂的创建线程和开启线程的繁琐。只需要关注最...

  • GCD技术

    初识GCD 在我们平时的OC开发中经常需要用到多线程编程,而GCD这项技术是最受开发者喜爱的多线程技术,我们今天就...

  • GCD初识

    什么是GCDGCD是牛逼的中枢调度器。它是纯C语言,提供了很多非常强大的函数 GCD的优势它是苹果公司为多核的并行...

  • GCD初相识

    GCD初识一 谈到iOS多线程,一般都会谈到四种方式:pthread、NSThread、GCD和NSOperati...

  • Grand Central Dispatch (GCD) 介绍

    GCD 概要 什么是 GCD Grand Central Dispatch (GCD) 是异步执行任务的技术之一。...

  • iOS 多线程面试题(GCD---队列)

    GCD---队列 iOS中,有GCD、NSOperation、NSThread等几种多线程技术方案。 而GCD共有...

  • 一 GCD初识

    1.GCD基础概念(此笔记为学习Objective-C高级编程书中第三章所记录的相关知识点) gcd为异步执行任务...

  • 技术贴:1.初识多线程

    一个进程必须要有一条线程,多个任务一个线程处理叫做串行,多个任务多个线程处理叫做并行,看似并行,其实原则上还是在按...

  • Objective-C GCD 笔记

    什么是 GCD GCD(Grand Central Dispatch)是异步执行任务的技术之一,借助 GCD 可以...

  • IOSGCD简单使用

    GCD并不是多线程技术 而是并发解决技术 简介:什么是GCD?--全称是 Grand Central Dispat...

网友评论

    本文标题:技术贴:2.初识GCD

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