IOS GCD创建及应用----GCD总结

今天来说说项目里常用的GCD应用:

上代码


看到上面代码是不是很熟悉,分解如下:

1、该方法的第一个参数是dispatch_queue,第二个参数是要执行的block。 

dispatch_async(dispatch_queue_t _Nonnull queue, ^{

   })

2、这个函数的第一个参数是dispatch_get_global_queue的优先级;第二个参数为保留值,始终传0.这个队列又叫做全局并行队列。

dispatch_get_global_queue(longidentifier, unsignedlong flags);GCD特殊的队列

3、dispatch_get_main_queue GCD特殊队列

Dispatch Queues的生成可以有这几种方式:

1. dispatch_queue_tqueue = dispatch_queue_create(“串行队列", DISPATCH_QUEUE_SERIAL); //生成一个串行队列,

2. dispatch_queue_t queue = dispatch_queue_create("并发队列", DISPATCH_QUEUE_CONCURRENT); //生成一个并发执行队列,

3. dispatch_queue_t queue = dispatch_get_main_queue(); //获得主线程的dispatch队列,实际是一个串行队列

4. dispatch_queue_t queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)//全局队列是并发队列,并由整个进程共享。进程中存在三个全局队列:高、中(默认)、低三个优先级队列。可以调用dispatch_get_global_queue函数传入优先级来访问队列

所以说再怎么变化  都是这4种创建方式的组合


注意:GCD队列就2种

1、Serial Dispatch Queue 等待现在执行中处理结束 等待执行 (串行)

2、Concurent Dispatch Queue 不等待现在执行中处理结束 立即执行 (并行)

你可能感兴趣的:(IOS GCD创建及应用----GCD总结)