GCD的基本使用(二)

2017-04-03  本文已影响103人  沈正方

一. 函数执行任务

dispatch_sync(dispatch_queue_t queue, dispatch_block_t block);
queue:队列
block:任务
- 用异步的方式执行任务
dispatch_async(dispatch_queue_t queue, dispatch_block_t block);
- 同步和异步的区别
  + 同步:只能在当前线程中执行任务,不具备开启新线程的能力
  + 异步:可以在新的线程中执行任务,具备开启新线程的能力
dispatch_barrier_async(dispatch_queue_t queue, dispatch_block_t block);

二. 并发队列

//const char * _Nullable label:队列名称(必须唯一:com.baidu.queue)
//dispatch_queue_attr_t  _Nullable attr:队列的类型
dispatch_queue_t queue = dispatch_queue_create(<#const char * _Nullable label#>, <#dispatch_queue_attr_t  _Nullable attr#>)
//<#long identifier#>:队列的优先级
//<#unsigned long flags#>:此参数未来使用,用0即可
dispatch_queue_t queue = dispatch_get_global_queue(<#long identifier#>, <#unsigned long flags#>)

三. 串行队列

//const char * _Nullable label:队列名称(必须唯一:com.baidu.queue)
//dispatch_queue_attr_t  _Nullable attr:队列类型传递NULL或者DISPATCH_QUEUE_SERIAL
dispatch_queue_t queue = dispatch_queue_create(<#const char * _Nullable label#>, <#dispatch_queue_attr_t  _Nullable attr#>)
2. 使用主队列(跟主线程相关联的队列)
dispatch_queue_t queue = dispatch_get_main_queue()
  + 主队列是GCD自带的一种特殊的串行队列
  + 放在主队列中的任务,都会放到主线程中执行

四. 函数+队列

五. 使用Crearte函数创建的并发队列全局并发队列的主要区别

上一篇 下一篇

猜你喜欢

热点阅读