sbc66.com: [DSP编程] 怎么找115资源-DSP编程

永利游戏开户直营
123|1
楼主
【╅:389739333】115资源【订制更新】  串行队列中的任务按顺序执行;但是不同串行队列间没有任何约束; 多个串行队列同时执行时,sbc66.com:不同队列中任务执行是并发的效果。比如:火车站买票可以有多个卖票口,但是每个排的队都是串行队列,整体并发,单线串行。

     注意防坑:串行队列创建的位置。比如下面代码示例中:在for循环内部创建时,每个循环都是创建一个新的串行队列,里面只装一个任务,多个串行队列,结果整体上是并发的效果。想要串行效果,必须在for循环外部创建串行队列。

     串行队列适合管理共享资源。保证了顺序访问,杜绝了资源竞争。

      代码示例:

    private func serialExcuteByGCD(){
        let lArr : [UIImageView] = [imageView1, imageView2, imageView3, imageView4]
        
        //串行队列,异步执行时,只开一个子线程
        let serialQ = DispatchQueue.init(label: "com.companyName.serial.downImage")
        
        for i in 0..<lArr.count{
            let lImgV = lArr[i]
            
            //清空旧图片
            lImgV.image = nil
            
         //注意,防坑:串行队列创建的位置,在这创建时,每个循环都是一个新的串行队列,里面只装一个任务,多个串行队列,整体上是并行的效果。
            //            let serialQ = DispatchQueue.init(label: "com.companyName.serial.downImage")
            
            serialQ.async {
               
                print("第\(i)个 开始,%@",Thread.current)
                Downloader.downloadImageWithURLStr(urlStr: imageURLs[i]) { (img) in
                    let lImgV = lArr[i]
                    
                    print("第\(i)个 结束")
                    DispatchQueue.main.async {
                        print("第\(i)个 切到主线程更新图片")
                        lImgV.image = img
                    }
                    if nil == img{
                        print("第\(i+1)个img is nil")
                    }
                }
            }
        }
    }
gif 效果图:


图中下载时可顺利拖动滚动条,是为了说明下载在子线程,不影响UI交互

log:

第0个 开始
第0个 结束
第1个 开始
第0个 更新图片
第1个 结束
第2个 开始
第1个 更新图片
第2个 结束
第3个 开始
第2个 更新图片
第3个 结束
第3个 更新图片
      由 log 可知: GCD 切到主线程也需要时间,切换完成之前,指令可能已经执行到下个循环了。但是看起来图片还是依次下载完成和显示的,因为每一张图切到主线程显示都需要时间。
沙发
| 2020-9-4 09:55 | 只看该作者
这发的啥玩意儿。
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

sbc66.com: 热门推荐

永利游戏开户直营 快速回复 返回顶部 返回列表
京城娱乐GPK棋牌 申博太阳城线路检测中心游戏导航 菲律宾申博太阳城有限公司网上娱乐场 hg平台代理 永利游戏开户直营
大发娱乐FG 王子MG电子 tyc889.com 香格里拉娱乐棋牌app 心博天下棋牌娱乐
sun175.com 永乐娱乐DS太阳城棋牌 诺亚体育棋牌优惠 121sun.com 赢波娱乐棋牌娱乐
新葡京怎么样登入 msc576.com 菲律宾申博太阳城客服 太阳城棋牌现金开户 83suncity.com