最浅显易懂的iOS多线程技术 - GCD的教程

最浅显易懂的iOS多线程技术 - GCD的教程

注释:队列是用来存放任务的,线程是执行任务的,队列好比高速公路服务区,并发队列好比服务区的多条出口,线程相当于高速公路,服务区的多条出口之间互不影响,串行队列好比服务区只有一条出口,所有的车只能排着队上高速

5.2 并发队列的创建:

1.使用 dispatch_queue_create 函数创建并发队列。

dispatch_queue_t queue = dispatch_queue_create("concurrent.queue", DISPATCH_QUEUE_CONCURRENT);

2.使用 dispatch_get_global_queue 获得全局并发队列。

GCD默认已经提供了全局的并发队列,供整个应用使用,可以无需手动创建。

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);



5.1 串行队列的创建:

GCD中获得串行有2种途径:

1.使用 dispatch_queue_create 函数创建串行队列

// 创建串行队列(队列类型传递NULL或者DISPATCH_QUEUE_SERIAL)

dispatch_queue_t queue = dispatch_queue_create("serial_queue", NULL);

2.使用主队列(跟主线程相关联的队列)

主队列是GCD自带的一种特殊的串行队列:放在主队列中的任务,都会放到主线程中执行。

可以使用dispatch_get_main_queue()获得系统提供的主队列:

dispatch_queue_t queue = dispatch_get_main_queue();


参考资料

iOS多线程GCD详解


iOS多线程GCD

GCD使用三部曲之:基本用法

多线程编程4 - GCD

iOS-GCD使用详解

完整详解GCD系列(一)dispatch_async;dispatch_sync;dispatch_async_f;dispatch_sync_f

你可能感兴趣的:(最浅显易懂的iOS多线程技术 - GCD的教程)