Swift执行队列

时间:2019-04-11 15:50:21

标签: ios swift concurrency

例如。我有三个后台任务。当前运行三个线程且在线程中的是代码

Dispatchqueue.main.async { 
  //SOMETHING CODE
}

Dispatchqueue.main.async处可以同时执行三个不同线程中的代码吗?谢谢!

1 个答案:

答案 0 :(得分:2)

主队列是串行的,因此一次只能运行一件事。如果同时将多个块提交到主队列,它们将顺序运行。

通常,您应该避免从线程角度考虑这一点。线程通常是队列赖以生存的实现细节。 (例如,如果您正在积极地使用pthreads创建自己的线程,则通常应避免这种情况,并使用队列。)线程和队列不是一对一的,除了主线程和主队列是捆绑在一起的彼此。

这很重要,因为您通常不“在线程上运行代码”。您将一个块分派到队列中,GCD会将那个块调度到某个线程上。当您以这种方式看到它时,主队列的行为应该变得更加清楚。