iOS多线程同步异步、串行并发的剖析

先来说一下队列和任务:

  • 队列分为串行和并行
  • 任务的执行分为同步和异步

这两两组合就成为了串行队列同步执行,串行队列异步执行,并行队列同步执行,并行队列异步执行

而异步是多线程的代名词,异步在实际引用中会开启新的线程,执行耗时操作

那我们先来知道一个非常重要的事情:

队列只是负责任务的调度,而不负责任务的执行

任务是在线程中执行的

队列和任务的特点:

队列的特点:先进先出,排在前面的任务最先执行,

串行队列:任务按照顺序被调度,前一个任务不执行完毕,队列不会调度

并行队列:只要有空闲的线程,队列就会调度当前任务,交给线程去执行,不需要考虑前面是都有任务在执行,只要有线程可以利用,队列就会调度任务。

主队列:专门用来在主线程调度任务的队列,所以主队列的任务都要在主线程来执行,主队列会随着程序的启动一起创建,我们只需get即可

全局队列:是系统为了方便程序员开发提供的,其工作表现与并发队列一致。


同步执行:不会开启新的线程,任务按顺序执行

异步执行:会开启新的线程,任务可以并发的执行

你可能感兴趣的:(iOS多线程同步异步、串行并发的剖析)