iOS开发之GCD(3)Main Dispatch Queue/Global Dispatch Queue
2015-03-17 13:54
585 查看
上一篇提到了如何创建dispatch queue,这篇记录一下如何获取系统标准提供的dispatch queue。
系统提供的Dispahch queue包括 Main Dispatch Queue和Global Dispatch Queue
Main Dispatch Queue:
这是在主线程中执行的Dispatch Queue,是一个Serial Dispatch Queue。追加到这个Dispatch Queue中的任务在主线程的Run Loop中执行。所以用户界面更新的操作必须在 Main Dispatch Queue 中进行。
Global Dispatch Queue:
这是一个Concurrent Dispatch Queue,开发中一般没有必要通过生成的方式,直接采用Global Dispatch Queue就可以。
Global Dispatch Queue包括四个优先级:High Priority,Default Priority,Low Priority,BackGround Priority。他们通过XNU内核的管理用于Global Dispatch Queue的线程。但是优先级的确认只是一个大致的判断,开发中可根据任务的重要性,选择追加,但是不能精确控制。
系统提供的Dispahch queue包括 Main Dispatch Queue和Global Dispatch Queue
Main Dispatch Queue:
这是在主线程中执行的Dispatch Queue,是一个Serial Dispatch Queue。追加到这个Dispatch Queue中的任务在主线程的Run Loop中执行。所以用户界面更新的操作必须在 Main Dispatch Queue 中进行。
/* Main Dispatch Queue 的获取方法 */ dispatch_queue_t mainDispatchQueue = dispatch_get_main_queue();
Global Dispatch Queue:
这是一个Concurrent Dispatch Queue,开发中一般没有必要通过生成的方式,直接采用Global Dispatch Queue就可以。
Global Dispatch Queue包括四个优先级:High Priority,Default Priority,Low Priority,BackGround Priority。他们通过XNU内核的管理用于Global Dispatch Queue的线程。但是优先级的确认只是一个大致的判断,开发中可根据任务的重要性,选择追加,但是不能精确控制。
/* Global Dispatch Queue 的获取方法 */ dispatch_queue_t globalDispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); dispatch_queue_t globalDispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_queue_t globalDispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0); dispatch_queue_t globalDispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
相关文章推荐
- iOS开发之:dispatch_async 与 dispatch_get_global_queue 的使用方法
- iOS开发之GCD(2)API Dispatch Queue
- iOS开发之:dispatch_async 与 dispatch_get_global_queue 的使用方法
- GCD 学习(三)Main&Global Dispatch Queue
- iOS开发之GCD(4)API dispatch_set_target_queue
- iOS开发之:dispatch_async 与 dispatch_get_global_queue 的使用方法
- iOS开发之:dispatch_async 与 dispatch_get_global_queue 的使用方法
- GCD学习 Main Dispatch Queue/Global Dispatch Queue
- iOS开发之:dispatch_async 与 dispatch_get_global_queue 的使用方法
- 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- iOS开发之:dispatch_async 与 dispatch_get_global_queue 的使用方法
- iOS GCD dispatch_async dispatch_get_main_queue
- GCD 学习(三)Main&Global Dispatch Queue
- 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- GCD 之三: Main Dispatch Queue/Global Dispatch Queue
- 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例(转载)
- GCD学习笔记(三):Main Dispatch Queue/Global Dispatch Queue
- IOS-12-关于GCD多线程:dispatch_async 与 dispatch_get_global_queue 的使用方法
- iOS开发之:dispatch_async 与 dispatch_get_global_queue 的使用方法
- iOS开发之:dispatch_async 与 dispatch_get_global_queue 的使用方法