简单来说,我得出的结论是-
- 队列 -有3种类型的队列,即1个主队列,4个全局队列和任意数量的自定义队列。
- 线程 -系统提供给我们的是主线程和其他后台线程。
DispatchQueue.main.async
-这意味着使用后台线程(不阻止UI)在主队列中执行任务,并且在任务完成时自动将其更新为UI,因为它已经在主队列中。
DispatchQueue.global()。async和global()。sync
这意味着使用后台线程在Global Queue中执行任务,并且当任务完成时,而不是 global()。sync的 使用将工作从
globalQueue转移到mainQueue ,然后更新到UI。
我的应用崩溃的原因
我试图使用(main.sync)将完成的任务带到MainQueue,但是它已经在MainQueue上,因为我没有切换队列,并且此
创建DeadLock (MainQueue等待自身)导致我的应用程序崩溃



