Ios 串行队列与并发队列有何不同?
我很困惑串行队列和并发队列是什么。并发是否允许队列中有一组操作,然后在可用线程上拆分它们,而串行是否也这样做,但将其限制为一个线程,并一次等待一个线程完成 文档中的解释似乎非常混乱。队列:Ios 串行队列与并发队列有何不同?,ios,objective-c,multithreading,concurrency,grand-central-dispatch,Ios,Objective C,Multithreading,Concurrency,Grand Central Dispatch,我很困惑串行队列和并发队列是什么。并发是否允许队列中有一组操作,然后在可用线程上拆分它们,而串行是否也这样做,但将其限制为一个线程,并一次等待一个线程完成 文档中的解释似乎非常混乱。队列: ------ ------ ------- ------- 队列: ------ ------ ------- ------- 队列: ------ ------ ------- ------- 队列: ------ ------ -------
------
------
-------
-------
队列:
------
------
-------
-------
队列:
------
------
-------
-------
队列:
------
------
-------
-------
“串行”表示提交到队列的块按顺序执行,
i、 e.在第一个块完成之前,不执行第二个块。
这并不意味着这些块是在同一个线程上执行的
“并发”表示提交到队列的块可以执行
同时(在不同的线程上)
在这两种情况下,GCD都使用一个“线程池”来执行块,因此您无法知道在哪个线程池上执行
线程将执行一个块。唯一的例外是“主队列”,它
执行主线程上的所有块。“串行”表示提交到队列的块按顺序执行,
i、 e.在第一个块完成之前,不执行第二个块。
这并不意味着这些块是在同一个线程上执行的
“并发”表示提交到队列的块可以执行
同时(在不同的线程上)
在这两种情况下,GCD都使用一个“线程池”来执行块,因此您无法知道在哪个线程池上执行
线程将执行一个块。唯一的例外是“主队列”,它
执行主线程上的所有块。队列:必须是串行或并发。以及同时全球或私人 序列队列:任务将逐个完成
并发队列:任务将同时执行,并按意外计划完成 专用队列:既可以是串行队列,也可以是并发队列
全局队列:
- 同步函数仅在 任务完成了。它阻塞队列并等待任务完成 完成了
- 异步函数将控制权立即返回给父队列 已发送要在不同队列上执行的任务。没有 等待任务完成。它不会阻止父队列
并发队列:任务将同时执行,并按意外计划完成 专用队列:既可以是串行队列,也可以是并发队列
全局队列:
- 同步函数仅在 任务完成了。它阻塞队列并等待任务完成 完成了
- 异步函数将控制权立即返回给父队列 已发送要在不同队列上执行的任务。没有 等待任务完成。它不会阻止父队列