GCD学习笔记(三):Main Dispatch Queue/Global Dispatch Queue
2015-06-10 12:46
423 查看
http://itjoy.org/?p=551
上节笔记中介绍了如何创建queue,通过dispatch_queue_create() 函数得到我们想要的queue,其实不用特意去创建Dispatch Queue,系统为我们实现了几个,一个是Main Dispatch Queue 一个是Global Dispatch Queue。
Main Dispatch Queue 将任务放在主线程中去执行,可以将一些更新UI的任务追加到该Queue中,这个和NSObject类提供的performSelectorOnMainThread方法执行的效果一样。
Global Dispatch Queue 是所有应用程序都能够使用的Concurrent Dispatch Queue。不用刻意的去创建一个Concurrent 的Queue。只要获得系统的这个即可。
追加到Global Dispatch Queue中的线程可以设置优先级,优先级分为四种,高优先级,默认优先级,和低优先级,以及后台优先级,可以根据需求选择执行的优先级。
Objective-C
对于使用Main Dispatch Queue 和 Global Dispatch Queue 执行 dispatch_retain 和 dispatch_release 函数不会引起任何变化,也没有任何问题。比起使用dispatch_queue_create()函数创建的queue,使用和释放要省事的多,所以采用系统的提供的就足够用了。
上节笔记中介绍了如何创建queue,通过dispatch_queue_create() 函数得到我们想要的queue,其实不用特意去创建Dispatch Queue,系统为我们实现了几个,一个是Main Dispatch Queue 一个是Global Dispatch Queue。
Main Dispatch Queue 将任务放在主线程中去执行,可以将一些更新UI的任务追加到该Queue中,这个和NSObject类提供的performSelectorOnMainThread方法执行的效果一样。
Global Dispatch Queue 是所有应用程序都能够使用的Concurrent Dispatch Queue。不用刻意的去创建一个Concurrent 的Queue。只要获得系统的这个即可。
追加到Global Dispatch Queue中的线程可以设置优先级,优先级分为四种,高优先级,默认优先级,和低优先级,以及后台优先级,可以根据需求选择执行的优先级。
Objective-C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ////////////////// ///concurrent queue dispatch_queue_t globalHighQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0); /* #define DISPATCH_QUEUE_PRIORITY_HIGH 2 #define DISPATCH_QUEUE_PRIORITY_DEFAULT 0 #define DISPATCH_QUEUE_PRIORITY_LOW (-2) #define DISPATCH_QUEUE_PRIORITY_BACKGROUND INT16_MIN */ dispatch_async(dispatch_get_global_queue(0, 0), ^{ ////do work dispatch_async(dispatch_get_main_queue(), ^{ ////update ui }); }); |
相关文章推荐
- GCD学习笔记(二):dispatch_queue_create
- PKU 1679 The Unique MST(解题报告)
- 关于arduino的各种网站
- [转载]UIKit Dynamics入门(OC)
- iOS中UITextField用法
- setuid权限
- FreeGLUT Tips: Resolve compile issue: error LNK1104: cannot open file 'freeglutd.lib'
- quick 关于触摸的问题
- HDU-1047-Integer Inquiry(Java大数水题 && 格式恶心)
- clCreateCommandQueue': was declared deprecated
- Universal Fighting Game Guide: Understanding Combo Systems Part 1 – The Elements
- UI控件问题和XCode编译警告和错误解决方法集锦 (持续更新ing)
- 多线程-NSOperationQueue
- ugui和ngui随手记
- UIStepper
- IOS中Key-Value Coding (KVC)的使用详解
- Unique Paths I,II
- Bluetooth--- android 蓝牙通信编程
- 全向移动平台android版手机控制器——UI界面设计
- 用好hook_views_query_alter,高度自定义view的筛选功能