美文网首页
gcd知识点

gcd知识点

作者: 伏特加 | 来源:发表于2016-04-15 11:31 被阅读26次

1.dispatch_after 工作起来就像一个延迟版的 dispatch_async 。你依然不能控制实际的执行时间,且一旦 dispatch_after 返回也就不能再取消它。
不知道何时适合使用 dispatch_after ?
自定义串行队列:在一个自定义串行队列上使用 dispatch_after 要小心。你最好坚持使用主队列。
主队列(串行):是使用 dispatch_after 的好选择;Xcode 提供了一个不错的自动完成模版。
并发队列:在并发队列上使用 dispatch_after 也要小心;你会这样做就比较罕见。还是在主队列做这些操作吧。
2.并发和并行通常被一起提到,所以值得花些时间解释它们之间的区别。
并发代码的不同部分可以“同步”执行。然而,该怎样发生或是否发生都取决于系统。多核设备通过并行来同时执行多个线程;然而,为了使单核设备也能实现这一点,它们必须先运行一个线程,执行一个上下文切换,然后运行另一个线程或进程。这通常发生地足够快以致给我们并发执行地错觉.虽然你可以编写代码在 GCD 下并发执行,但 GCD 会决定有多少并行的需求。并行要求并发,但并发并不能保证并行。
3.在何时以及何处使用 dispatch_sync :
自定义串行队列:在这个状况下要非常小心!如果你正运行在一个队列并调用 dispatch_sync 放在同一个队列,那你就百分百地创建了一个死锁。
主队列(串行):同上面的理由一样,必须非常小心!这个状况同样有潜在的导致死锁的情况。
并发队列:这才是做同步工作的好选择,不论是通过调度障碍,或者需要等待一个任务完成才能执行进一步处理的情况。
4.dispatch_suspend并不会立即暂停正在运行的block,而是在当前block执行完成后,暂停后续的block执行。
dispatch_set_target_queue小结:
dispatch_set_target_queue可以更改Dispatch Queue优先级。
dispatch_set_target_queue可以更改队列的执行层次,队列里的任务将会按照目标队列(target Queue)
的队列来处理

文/Dely(简书作者)原文链接:http://www.jianshu.com/p/2a614531187f著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。**

相关文章

  • GCD 中的线程组 Group

    前言 本文主要介绍 GCD 中的线程组 Group,不讲 GCD 基础概念知识。如果对 GCD 的基本知识点不是很...

  • GCD相关知识点

    GCD相关知识点 多线程技术--GCD 深入学习GCD GCD 深入理解:第一部分 GCD 深入理解:第二部分 1...

  • GCD串行并发队列

    学习完本篇,您会对以下知识点更加理解: 队列 串行队列 并发队列 GCD全局队列 GCD主队列 创建串行队列 创建...

  • gcd知识点

    1.dispatch_after 工作起来就像一个延迟版的 dispatch_async 。你依然不能控制实际的执...

  • GCD编程

    今天谈论gcd编程的相关知识,gcd编程应该包涵的知识点有:g c d串行队列和并发队列,g c d的延时,线程组...

  • GCD的使用简单总结

    GCD的知识技能点截图: 知识点逐一简介 NO.1 GCD同步函数+串行队列(所有的都写为一个小方法,调用就好)...

  • 细说GCD

    GCD是多线程编程中很常用的技术,同时,作为一项重要的知识点,在面试中也是“常来之客”,本文通过API进行GCD的...

  • 一 GCD初识

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

  • GCD

    目录 知识点概况 队列和任务 并发和并行 常用场景 知识点 什么是GCD?以下摘自苹果的官方说明Grand C...

  • iOS多线程之pthread和NSThread

    iOS开发中,多线程相关的知识点主要包括pthread、NSThread、NSOperation和GCD,我们经常...

网友评论

      本文标题:gcd知识点

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