記錄一些平時不會注意到的dispatch點
dispatch_group
dispatch_group的底層實現是怎么樣的呢?
在閱讀官方源碼的時候發現一個很有意思的地方,dispatch_group居然和semaphore是同一個東西。dispatch_group可以說是semaphore的一個特定擴展實現。
我們從業務需求上來說,的確group也是可以用semaphore來實現相同的功能。
dispatch_once
以前一直以為dispatch_once是一個單純的經過系統優化的鎖而已,然而官方實現上要復雜很多,運行時會維護一個鏈表來執行,這樣做可能是為了減少使用鎖的情況。