iOS多线程同步异步、串行并发的剖析
2019-10-01 本文已影响0人
傲视苍穹
先来说一个队列和任务:
- 队列分为串行和并行
- 任务的执行分为同步和异步
这两两组合就成为了串行队列同步执行,串行队列异步执行,并行队列同步执行,并行队列异步执行
而异步是多线程的代名词,异步在实际引用中会开启新的线程,执行耗时操作
那我们先来知道一个非常重要的事情:
队列只是负责任务的调度,而不负责任务的执行
任务是在线程中执行的
队列和任务的特点:
队列的特点:先进先出,排在前面的任务最先执行,
串行队列:任务按照顺序被调度,前一个任务不执行完毕,队列不会调度
并行队列:只要有空闲的线程,队列就会调度当前任务,交给线程去执行,不需要考虑前面是都有任务在执行,只要有线程可以利用,队列就会调度任务。
主队列:专门用来在主线程调度任务的队列,所以主队列的任务都要在主线程来执行,主队列会随着程序的启动一起创建,我们只需get即可
全局队列:是系统为了方便程序员开发提供的,其工作表现与并发队列一致。
同步执行:不会开启新的线程,任务按顺序执行
异步执行:会开启新的线程,任务可以并发的执行