07-掌握-GCD基本使用

创建并发队列(一般很少用到)

/*
 第一个参数:C语言字符串,标签:不安全的指针[-128,127]
 第二个参数:dispatch_queue_attr_t类或子类

 DISPATCH_QUEUE_CONCURRENT:并发队列
 DISPATCH_QUEUE_SERIAL:串行队列

 dispatch_queue_create(label: UnsafePointer<Int8>, _ attr: dispatch_queue_attr_t!) -> dispatch_queue_t!
*/
let queue =  dispatch_queue_create("com.xxx.www", nil);

为什么这里可以写nil

//OC代码中 有一段源码 
#define DISPATCH_QUEUE_SERIAL NULL

获得全局并发队列(常用)

/*
 获得全局并发队列
 dispatch_get_global_queue(identifier: Int, _ flags: UInt) -> dispatch_queue_t!

 *推荐使用的服务质量类值来确定
 *知名全球并发队列:
 *——QOS_CLASS_USER_INTERACTIVE
 *——QOS_CLASS_USER_INITIATED
 *——QOS_CLASS_DEFAULT
 *——QOS_CLASS_UTILITY
 *——QOS_CLASS_BACKGROUND
 *
 *全球并发队列可能仍然被他们的优先级,
 *以下哪一个QOS映射到类:
 DISPATCH_QUEUE_PRIORITY_HIGH:QOS_CLASS_USER_INITIATED
 DISPATCH_QUEUE_PRIORITY_DEFAULT     :QOS_CLASS_DEFAULT
 DISPATCH_QUEUE_PRIORITY_LOW :QOS_CLASS_UTILITY
 DISPATCH_QUEUE_PRIORITY_BACKGROUND  :QOS_CLASS_BACKGROUND

 flags 永远传0
 */
let queue = dispatch_get_global_queue(0, 0)

为什么这里可以写0

//OC代码中 有一段源码 
 #define DISPATCH_QUEUE_PRIORITY_HIGH 2
 #define DISPATCH_QUEUE_PRIORITY_DEFAULT 0
 #define DISPATCH_QUEUE_PRIORITY_LOW (-2)
 #define DISPATCH_QUEUE_PRIORITY_BACKGROUND INT16_MIN

获得主队列

let queue = dispatch_get_main_queue()

函数

同步函数

 /*
  同步函数
  dispatch_sync(queue: dispatch_queue_t, _ block: dispatch_block_t)
  第一个参数:队列
  第二个参数:block,在里面封装任务
  */
 dispatch_sync(queue) {
     print("sync_download")
 }

异步函数

 /*
  异步函数
  dispatch_async(queue: dispatch_queue_t, _ block: dispatch_block_t)
  第一个参数:队列
  第二个参数:block,在里面封装任务
  */
 dispatch_async(queue) {
     print("async_download")
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值