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 死锁

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

  • Swift- 多线程编程GCD

    参考文章:1、Swift 3使用GCD和DispatchQueues2、线程死锁 基本概念: 串行队列:只有一个线...

  • 说说GCD中的死锁

    本文主要举例说明GCD里的死锁场景,分析造成死锁的原因以及解决方案 在开始说GCD死锁之前,我们先了解一下GCD的...

  • 552,GCD的死锁(面试点:gcd死锁:一,主线程调用主线程。

    本文主要举例说明GCD里的死锁场景,分析造成死锁的原因以及解决方案 在开始说GCD死锁之前,我们先了解一下GCD的...

  • GCD 死锁

    GCD死锁 同步 异步 串行 并发

  • IOS开发 GCD产生死锁的总结

    在IOS开发中GCD的使用频率很高,但是使用不当,则会产生死锁,以下是我的对GCD产生死锁的总结。 了解死锁之前首...

  • 死锁 GCD 多线程

    死锁 GCD 多线程 Ios - LDSmallCat - 博客园 Ios中GCD死锁困扰很多人,分享一点个人经...

  • 带你分分钟了解GCD多线程的死锁

    带你了解GCD多线程的死锁 阐述: 1.什么是GCD? GCD,全称 Grand Central Dispatch...

  • GCD避免死锁的三要素

    平时总在用GCD,但你知不知道,GCD一不小心就会出现死锁,如果死锁在主线程上,整个程序就完了,所以避免死锁是我们...

  • Swift-GCD

    对原Swift-GCD升级 SwiftGCD Swift-GCD Package GCDGroup, GCDQue...

网友评论

    本文标题:Swift GCD 死锁

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