ios多线程中 同步异步与队列之间的关系

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios多线程中 同步异步与队列之间的关系相关的知识,希望对你有一定的参考价值。

同步和异步

异步: 指的就是多线程, 把`对应的代码`放到其他线程中去执行, 当前线程的代码就继续往下执行,不需要等到刚才放到子线程中的代码执行完毕.

 

同步执行函数: 这个实际的应用场景不多 , 了解即可

            登录,注册 需要放到一个队列中去执行

            下载文件 需要放到另外一个队列去执行

 

异步执行函数:

    串行队列特点: 如果要开启线程,只会开启一条线程

                (同步函数执行时, 如果队列是串行队列,不需要开启线程, 任务在当前线程中执行)

                (异步函数执行时, 如果队列是串行队列,可以开启线程,并且只能开启一条线程)

 

    并发队列特点: 可以开启多条线程,  ios8以前开启线程的数量是有限制的. 以后就可以开很多线程.

                (同步函数执行时, 如果队列是并发队列,不需要开启线程,任务在当前线程中执行)

                (异步函数执行时, 如果队列是并发队列,可以开启线程,并且可以开启多条线程)

 

执行函数和队列进行组合使用时: ***开不开启线程和队列没有关系,只由执行函数决定.

                          ***开几条线程由队列决定,和执行函数没有关系 (串行,一条-----并发,多条).

 

    全局队列: 是系统给我们提供的一个并发队列

 

 

    主队列: 把任务放到主队列中就表示要在主线程里执行任务里的代码

 

----------------------- 

注意:

dispatch_after  这个函数不管队列是什么都是异步执行任务

                如果执行队列是主队列, 这个执行函数不会开启新的线程

 

以上是关于ios多线程中 同步异步与队列之间的关系的主要内容,如果未能解决你的问题,请参考以下文章

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

iOS多线程——同步异步串行并行

IOS多线程知识总结/队列概念/GCD/串行/并行/同步/异步

iOS多线程知识总结/队列概念/GCD/串行/并行/同步/异步

IOS 主队列,全局队列的关系

iOS底层探索之多线程—GCD源码分析(函数的同步性异步性单例)