我刚刚开始在iOS上工作,并且已经在GCD上浏览了Apple Reference材料。 dispatch_get_global _queue
返回一个可以提交要执行的块的并发队列。
但是,我们也可以使用dispatch_get_main_queue
来实现相同的目标,对吗?那么,dispatch_get_global_queue
和dispatch_get_main_queue
之间究竟有什么区别?
答案 0 :(得分:9)
全局队列是后台队列,并在非主线程上执行其块。主队列在主线程上执行其块。
您应该将不涉及更改的后台工作放在全局队列上的用户界面上,但是当块对用户界面进行更改时使用主队列。例如,一种非常常见的模式是在全局队列上执行“工作”块,并让工作块本身调度回主队列以更新进度指示器。
答案 1 :(得分:4)
dispatch_get_main_queue
- 当您想要操纵UI元素时应该使用它。
(它获得一个后台队列,您可以调度异步运行的后台任务......它不会阻止您的用户界面)
dispatch_get_global_queue
- 可用于网络电话/核心数据。