gpt4 book ai didi

ios - 为什么 SDWebImage'downloader 使用并发队列来保存回调?

转载 作者:行者123 更新时间:2023-11-29 12:17:08 25 4
gpt4 key购买 nike

为什么SD不使用“串行队列”或“同步锁”,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];
});

最佳答案

长话短说;为了更好的表现。

  1. 一个写操作(包括删除)必须是一个原子操作,所以它们被包裹在一个屏障 block 中
  2. 读取操作可以并行,因此它们被包装在同步块(synchronized block)中,以提高多核性能

关于ios - 为什么 SDWebImage'downloader 使用并发队列来保存回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31740078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com