iOS多线程GCD

来源:互联网 发布:数据备份前景 编辑:程序博客网 时间:2024/06/05 18:50

GCD(Grand Central Dispatch)是iOS实现多线程的常用方式。在iOS中实现多线程主要由3种方式:

  1. NSTread
  2. Cocoa框架的NSOperation
  3. GCD

其中GCD是抽象层次最高、使用最方便的,因此在iOS编程中,我们主要使用的是GCD技术
多线程一般应用时在图片加载、网络访问等方面,通过异步加载线程来处理耗时的图片加载和网络数据获取过程,异步线程函数

dispatch_async(dispatch_queue_t,void(^)(void))

其中第一个参数是一个类型为dispatch_queue_t线程,第二个参数是一个传入该线程的事件处理block
应用程序主动创建了2个进程

  1. 主进程:dispatch_get_main_queue
  2. ConcurrentQueue:disptch_get_global_queue(TYPE,0)

其中ConcurrentQueue根据不同的TYPE有不同的线程优先级

#define DISPATCH_QUEUE_PRIORITY_HIGH 2#define DISPATCH_QUEUE_PRIORITY_DEFAULT 0#define DISPATCH_QUEUE_PRIORITY_LOW -2

异步GCD的使用方式一般为

dispatch_queue_t my_dispatch_queue_t = dispatch_queue_create("myQueue",NULL);dispatch_async(my_dispach_queue_t,^{    //执行异步数据处理,如图片获取    dispatch_async(dispatch_get_main_queue(),^{        //获取主线程,从而在主线程中更新界面,如图片显示    });});
0 0
原创粉丝点击