美文网首页
SDWebImage肢解分析

SDWebImage肢解分析

作者: 踏云小子 | 来源:发表于2018-02-27 17:39 被阅读9次

SDWebImageDownloader

1.将operation加入到URLOperations(并发+barrier加锁方式)

URLOperations是一个key是NSURL,value是NSOperation的字典
为什么在URLOperations写入新值时,不要@synchronized而是并发队列+barrier?两者区别是什么?

  • @synchronized是同步锁,效率低
  • 并发队列+barrier
    image.png
dispatch_queue_t queue = dispatch_queue_create("APP_TEST", DISPATCH_QUEUE_CONCURRENT);

dispatch_async(queue, ^{
    NSLog(@"---1");
});
dispatch_async(queue, ^{
    NSLog(@"---2");
});
dispatch_async(queue, ^{
    NSLog(@"---3");
});

dispatch_barrier_sync(queue, ^{
    for (int i = 0; i < 50000; i ++) {
        if (i == 5000) {
            NSLog(@"p1");
        }else if (i == 6000){
            NSLog(@"p2");
        }else if (i == 7000){
            NSLog(@"p2");
        }
    }
    NSLog(@"barrier");
});

dispatch_async(queue, ^{
    NSLog(@"---4");
});
dispatch_async(queue, ^{
    NSLog(@"---5");
});
dispatch_async(queue, ^{
    NSLog(@"---6");
});
  • 附注:
    iOS版本小于6.0需要手动释放dispatch_release(_barrierQueue);,正常ARC下不需要
    iOS版本小于6.0可以通过OS_OBJECT_USE_OBJC来判断,为0,则iOS<6.0

SDWebImageDownloaderOperation

1. 自定义一个线程(NSOperation)来下载图片
  • 附注:
    SDWebImageDownloaderSDWebImageDownloaderOperation解耦不是很好,他们共用了session,导致session对的delegate重复,为什么两者不能合并一起
  1. Image I/O的使用,以及优化

相关文章

  • SDWebImage肢解分析

    SDWebImageDownloader 1.将operation加入到URLOperations(并发+barr...

  • SDWebImage 分析

    SDWebImage 分析 Version 4.0.0 导航 按照模块分析 SDWebImage 1. UI交互的...

  • SDWebImage4.0源码探究(一)面试题

    目录 一、SDWebImage UML分析 二、SDWebImage 中 @autoreleasepool 的应用...

  • SDWebImage使用

    SDWebImage的使用 SDWebImage的所有的下载策略 SDWebImage实现逻辑分析 总结一下: 主...

  • SDWebImage 源码分析

    SDWebImage 源码分析 首先我 fork 了 SDWebImage 的源码,见 conintet/SDWe...

  • SDWebImage使用及源码分析

    SDWebImage 1.SDWebImage框架的分析 SDWebImageManager管理者 //单例类方法...

  • SD一点小体会

    汇总记录: 本文基于SDWebImage 4.2.3版本进行分析和整理。 SDWebImage |----SDWe...

  • SDWebImage源码分析

    SDWebImage源码分析 UIImageView+WebCache sd SDWebImageManager ...

  • 好文分享

    iOS 源代码分析 --- SDWebImage 简洁的接口 首先来介绍一下这个 SDWebImage 这个著名开...

  • SDWebImage分析

    1.加载大图片内存为什么暴涨图片解码很耗时。 异步。当用 UIImage 或 CGImageSource 的那几...

网友评论

      本文标题:SDWebImage肢解分析

      本文链接:https://www.haomeiwen.com/subject/vxzqzxtx.html