GCD基本知识

Posted 小课桌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GCD基本知识相关的知识,希望对你有一定的参考价值。

1、纯C语言,提供了非常多的强大的函数。

2、GCD的核心:

        将任务添加到队列。(任务:执行什么操作。队列:用来存放任务,特点是先进先出)

3、GCD的使用步骤:

        -->创建任务(即确定要做的事情)。GCD中的任务是用block封装的。

        -->将任务添加到队列中

                >GCD会自动将队列中的任务取出,放到对应的线程中执行。

                >任务从队列中取出原则:先进先出。

示例代码:

 1     // 1、创建队列
 2     // dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
 3     
 4     // 2、创建任务:用Block指定(无参无返回值)
 5     // void(^task)() = ^{
 6     //    NSLog(@"%@",[NSThread currentThread]);
 7     // };
 8     
 9     // 3、将任务添加到队列
10     // dispatch_async:表示任务是异步的
11     // dispatch_sync:表示任务是同步的
12     // dispatch_async(queue, task);
13     
14     // 简写方式:
15     dispatch_async(dispatch_get_global_queue(0,0), ^{
16         NSLog(@"%@",[NSThread currentThread]);
17     });

 

GCD执行任务的2个函数:

1 // 同步的方式执行任务,在当前线程中依次执行任务
2 dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);
3 
4 // 异步的方式执行任务,会开辟新线程,在新线程中执行任务
5 dispatch_async(dispatch_queue_t queue, dispatch_block_t block);

 

GCD的2种队列类型:

队列:就是用来存放任务的,特点是先进先出。

1、串行队列:让任务一个接着一个的有序执行,不管队列里面放的是什么任务,都是一个任务执行完毕后,再执行下一个任务。

2、并行队列(又叫并发队列):

  2.1>可以让多个任务“并发/同时”执行,自动开启多个线程同时执行多个任务

  2.2>同时可以调度多个任务执行

  2.3>并发队列的并发功能只有内部的任务是异步任务时,才有效。

以上是关于GCD基本知识的主要内容,如果未能解决你的问题,请参考以下文章

iOS 多线程:『GCD』详尽总结

android小知识点代码片段

c_cpp Robolution基本代码片段

GCD基本知识

扩展欧几里得

html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。