Swift GCD 死锁

作者: xxxixxxx | 来源:发表于2020-11-08 16:25 被阅读0次

    1. 串行队列中,在异步任务中添加同步任务

    /// 由于没有定义 attributes 所以是串行队列
    let queue = DispatchQueue(label: "myQueue")
    queue.async {
        print("----- task 1 -------")
        queue.sync {
            print("----- task 2 -------")
        }
    }
    
    ⚠️解决方法
    /// 解决方法将串行改为并行
    let queue = DispatchQueue(label: "myQueue", attributes: DispatchQueue.Attributes.concurrent)
    
    

    2. 主线程同步

    let queue = DispatchQueue.main
    queue.sync {
        print("----- task 1 -------")
    } 
    

    相关文章

      网友评论

        本文标题:Swift GCD 死锁

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