为什么SD不使用“串行队列”或“synchrolock”,SD使用这样,dispatch_barrier_async
_barrierQueue=dispatch_queue_create("com.hackemist.SDWebImageDownloaderBarrierQueue", DISPATCH_QUEUE_CONCURRENT);
dispatch_barrier_sync(self.barrierQueue, ^{
....
});
dispatch_barrier_async(sself.barrierQueue, ^{
[sself.URLCallbacks removeObjectForKey:url];
});
dispatch_sync(sself.barrierQueue, ^{
callbacksForURL = [sself.URLCallbacks[url] copy];
});
答案 0 :(得分:1)
TL; DR;为了更好的表现。