GCD

作者: 人生路02 | 来源:发表于2016-06-24 09:02 被阅读22次

    1.什么是GCD

    Grand Central Dispatch (GCD) 是 Apple 开发的一个多核编程的解决方法。该方法在 Mac OS X 10.6 雪豹中首次推出,并随后被引入到了 iOS4.0 中。GCD 是一个替代诸如 NSThread, NSOperationQueue, NSInvocationOperation 等技术的很高效和强大的技术。
    GCD 和 block 的配合使用,可以方便地进行多线程编程。

    嗯嗯,这段话来自 唐巧的技术博客

    iOS中多线程实现多线程的一种方式。

    2.并发&并行

    所谓的“并发”,英文翻译是concurrent。要注意和“并行(parallelism)”的区别。

    并发指的是一种现象,一种经常出现,无可避免的现象。它描述的是“多个任务同时发生,需要被处理”这一现象。它的侧重点在于“发生”。

    比如有很多人排队等待检票,这一现象就可以理解为并发。

    就是,在同一个时间点,发生了许多件事情。(或者说,产生了许多个任务)在一个时间点,有好多人同时出生,来到这个世界。(世界很美好,不要做码农啊~)。

    并行指的是一种技术,一个同时处理多个任务的技术。它描述了一种能够同时处理多个任务的能力,侧重点在于“运行”。

    比如景点开放了多个检票窗口,同一时间内能服务多个游客。这种情况可以理解为并行。

    就是,在同一个时间点,有多个任务在执行。(同一时间内能服务多个游客。)同一时间内,许多游客都在游玩。

    3.并行&串行

    串行: 并行的反义词就是串行,表示任务必须按顺序来,一个一个执行,前一个执行完了才能执行后一个。

    4.同步&异步

    同步和异步,就是在问。需要任务执行完,再返回吗?需要,就是同步。不需要就是异步。

    如在第一行调用foo()方法,那么程序运行到第二行的时候,foo方法肯定是执行完了。这就是同步。

    所谓的异步,就是允许在执行某一个任务时,函数立刻返回,但是真正要执行的任务稍后完成。那么上面的例子,执行到第二行时,foo()方法或许还没有执行完成。

    参考链接

    iOS多线程编程 bestswifter

    标哥的技术博客

    相关文章

      网友评论

          本文标题:GCD

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