美文网首页
Swift之GCD

Swift之GCD

作者: 小羊爱学习 | 来源:发表于2023-11-20 15:31 被阅读0次

串行队列

        let queue = DispatchQueue(label: "")
        let queue = DispatchQueue(label: "", qos: .background) // qos: 优先级
        queue.async {
            //异步串行,只开启一条新线程,串行执行任务
        }
        queue.sync {
            //同步串行,不开启新线程,串行执行任务
        }

主队列

        let queue = DispatchQueue.main
        queue.sync {
            // 主队列同步任务,不开启新线程,串行执行任务
        }
        queue.async {
            // 主队列异步任务,不开启新线程,串行执行任务
        }

并发队列

        let queue = DispatchQueue(label: "", attributes: .concurrent)
        let queue = DispatchQueue(label: "", qos: .utility, attributes: .concurrent)
        queue.async {
            //异步并发,开启新线程,并发执行任务
        }
        queue.sync {
            //同步并发,不开启新线程,串行执行任务
        }

全局并发队列

        let queue = DispatchQueue.global()    
        queue.async {
            //异步并发,开启新线程,并发执行任务
        }
        queue.sync {
            //同步并发,不开启新线程,串行执行任务
        }    

结论:

同步任务,不管什么队列,全都不开启新线程,串行执行任务
异步任务,主队列不开启,串行执行;串行队列,开启一条,串行执行;并发队列,开启多条,并发执行

相关文章

网友评论

      本文标题:Swift之GCD

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