本文是基于GCD的支持库libdispatch的源代码分析的结果或是用于作为源代码阅读的参考,尽量不帖代码,力求用UML图来说明工作流. 本文参考的源代码版本为v501.20.1,如有兴趣请自行到苹果的开源项目网站下载. dispatch group的相关代码位于dispatch_semaphore.c模块中.下面是分析后的活动图: dispatch group是一个基于信号量的同步机制,主要提供了下面5个函数: enter, leave, wait, async, notify. 活动图中有4…