记录一些平时不会注意到的dispatch点
dispatch_group
dispatch_group的底层实现是怎么样的呢?
在阅读官方源码的时候发现一个很有意思的地方,dispatch_group居然和semaphore是同一个东西。dispatch_group可以说是semaphore的一个特定扩展实现。
我们从业务需求上来说,的确group也是可以用semaphore来实现相同的功能。
dispatch_once
以前一直以为dispatch_once是一个单纯的经过系统优化的锁而已,然而官方实现上要复杂很多,运行时会维护一个链表来执行,这样做可能是为了减少使用锁的情况。