ios/swift 调度队列 - 全局和主队列概念

Posted

技术标签:

【中文标题】ios/swift 调度队列 - 全局和主队列概念【英文标题】:ios/swift dispatch queues - global and main queue concepts 【发布时间】:2018-03-24 02:09:01 【问题描述】:

所以如果我要做一些繁重的事情,然后更新 UI,这会是最好的方法吗?

DispatchQueue.global().async 
    // Do something heavy here, such as adding 10000 objects to an array

    DispatchQueue.main.async 
        // Update UI here after the heavy lifting is finished, such as tableView.reloadData()
    

【问题讨论】:

【参考方案1】:

是的,这是您可以用来避免阻塞主线程的方法之一,但还有许多其他选择,例如使用 DispatchGroup 链接异步任务,OperationQueue 甚至创建自己的队列并在其中执行繁重的工作,把 UI 的东西交给主线程,但是要记住全局队列只是一个队列,如果你发现有很多调用它,最好创建一个新的助手

【讨论】:

以上是关于ios/swift 调度队列 - 全局和主队列概念的主要内容,如果未能解决你的问题,请参考以下文章

同步,异步,串行队列,并发队列,全局队列,主队列等概念的总结

ios多线程同步异步、串行并行队列、死锁

OO学习总结

iOS(Swift) TaskProtocol异步任务队列

Linux进程概念——下验证进程地址空间的基本排布 | 理解进程地址空间 | 进程地址空间如何映射至物理内存(页表的引出) | 为什么要存在进程地址空间 | Linux2.6内核进程调度队列

Linux进程概念——下验证进程地址空间的基本排布 | 理解进程地址空间 | 进程地址空间如何映射至物理内存(页表的引出) | 为什么要存在进程地址空间 | Linux2.6内核进程调度队列