美文网首页runtime
IOS 同步异步。串行并行的区别。

IOS 同步异步。串行并行的区别。

作者: 上帝是个女孩丶 | 来源:发表于2017-06-05 16:49 被阅读831次

这个问题解释过很多次了,这次写下来吧。

简单点讲,同步异步是相对于线程来说的。串行和并行是相对于队列,或者说任务来说的,是任务的执行先后顺序,不关系到线程。

同步会卡死线程,异步一般是开启另一个线程来执行,开启的这个只能是子线程。异步的子线程会在后台跑起来,甚至超过了主线程的速度,但是关于刷新UI的事情需要回归主线程来做。子线程不具备刷新UI的功能。可以更新的结果只是一个幻像:因为子线程代码执行完毕了,又自动进入到了主线程,执行了子线程中的UI更新的函数栈。

举个生活中的例子高速公路,过收费站的时候就像是串行。开多个窗口(多核)的时候就像是并行。然后用户为了超车(假设)进入快车道(或者说匝道)行驶一段路之后还要回归主干道,这是异步。同步和串行有点像,但是是相对于线程而言的。所有的线程默认都是同步。

有关线程先后顺序依赖关系的事情最好放到队列里面去做。

注意:主线程中不能使用同步。会发生循环等待(主线程等待该线程执行完毕,该线程需要调用主线程执行)。

相关文章

  • 多线程GCD的使用

    一、同步/异步、串行/并行的区别 1.同步/异步 同步/异步是指线程与线程之间的关系。 2.串行/并行 串行、并行...

  • GCD 小结

    一、 同步/异步、串行/并行的区别 1.同步/异步 同步/异步是指线程与线程之间的关系. 2.串行/并行 串行/并...

  • iOS多线程小结

    同步异步串行并行 同步串行:不开启线程 同步并行:不开启线程 异步串行:最多开启一个线程 异步并行:开启线程 同步...

  • GCD基础总结一

    上代码~ 同步串行队列 同步并行队列 异步串行队列 异步并行队列 主队列同步 会卡住 主队列异步

  • sync 和 async区别

    同步,异步,串行,并行

  • GCD

    同步、异步、串行、并行的概念 同步/异步:指的是能否开启新的线程,同步不能开启新的线程,异步可以。串行/并行:指的...

  • GCD 相关函数

    串行同步 串行异步 并行同步 并行异步 主队列同步 会死锁 主队列异步 异步处理耗时,回主线程刷新UI 栅栏函数 ...

  • GCD

    1、同步串行队列 2、同步并行队列 3、异步串行队列 4、异步并行队列 5、死锁 主线程中创建同步串行队列 主线程...

  • IOS 同步异步。串行并行的区别。

    这个问题解释过很多次了,这次写下来吧。 简单点讲,同步异步是相对于线程来说的。串行和并行是相对于队列,或者说任务来...

  • iOSIN-GCD

    队列和同步异步 区别并行队列串行队列主队列同步(sync)没有开启新线程,串行执行任务没有开启新线程,串行执行任务...

网友评论

    本文标题:IOS 同步异步。串行并行的区别。

    本文链接:https://www.haomeiwen.com/subject/uqaifxtx.html