iOS 多线程(二):GCD

💡 原文中文,约12200字,阅读约需29分钟。
📝

内容提要

GCD是苹果公司为多核并行运算提出的解决方案,能够主动利用更多的CPU内核,程序员只需告诉GCD想要执行什么任务,不需要编写线程管理代码。GCD有同步异步和串行并发两种任务执行方式,可以组合使用。GCD还有其他用法,如栅栏函数、调度组、信号量、dispatch_once和dispatch_apply等。其中,dispatch_source常用于GCD定时器的实现。

🎯

关键要点

  • GCD是苹果公司为多核并行运算提出的解决方案,能够主动利用更多的CPU内核。
  • 程序员只需告诉GCD想要执行的任务,不需要编写线程管理代码。
  • GCD有同步和异步两种任务执行方式,分别对应于是否等待任务完成和是否开启新线程。
  • GCD中有串行队列和并发队列,串行队列一个任务完成后再执行下一个,而并发队列可以同时执行多个任务。
  • 可以组合使用同步和异步以及串行和并发的队列。
  • 栅栏函数用于控制任务的执行顺序,确保一组任务完成后再执行另一组任务。
  • 读写锁在读多写少的场景下效率高,允许多个读者同时存在,但只允许一个写者。
  • 调度组用于将任务分组执行,并可以监听任务组的完成情况。
  • 信号量用于控制GCD的最大并发数,也可以作为锁使用。
  • dispatch_once用于确保某段代码在程序运行过程中只被执行一次,确保线程安全。
  • dispatch_apply用于在并行队列中执行多次任务,类似于for循环。
  • dispatch_source常用于实现GCD定时器,提供更高的计时精度。
🏷️

标签

➡️

继续阅读