36 Swift多线程编程新思路:GCD

2023-03-26  本文已影响0人  为了自由的白菜

多线程编程新思路:GCD概览

GCD


image-20230308205145335.png

GCD-队列

GCD-队列API

GCD-队列

image-20230308210224437.png

如何使用GCD:基本操作指南

GCD-基本操作

GCD-串行 vs 并行

image-20230308211127695.png

GCD-同步 vs 异步

image-20230308211215763.png

GCD-sync

image-20230308211400449.png

GCD-async

GCD-asyncAfter

image-20230308211929480.png
//qos:优先级/服务质量
//attributes: 指定队列是并行的还是串行的
//autoreleaseFrequency: 频度
//target: 指向哪种队列, 不设置就指向默认
let queue = DispatchQueue(label: "myQueue", qos:DispatchQos.default, attributes: DispatchQueue.Attributes.concurrent, autoreleaseFrequency: DispatchQueue.AutoreleaseFrequency.inherit, target: nil)

queue.sync {
    print("in queue sync")
}

queue.async {
    sleep(1)
    print("in queue async")
}

//deadline: 什么时候去执行  now代表立即执行
queue.asyncAfter(deadline: .now() + 1) {
    print("in asyncAfter")
}

print("after invoke queue method")



深度使用GCD:高级特性指南

DispatchGroup

image-20230311215232022.png

DispatchGroup - wait

image-20230311215600533.png

DispatchGroup - notify

image-20230311215846452.png

DispatchSource


DispatchSource - Time

image-20230311220622061.png

深入理解GCD: 源码剖析

GCD - sync

image-20230312092514394.png image-20230312092536616.png image-20230312092548471.png image-20230312092624898.png image-20230312092644982.png image-20230312092735557.png image-20230312093017053.png image-20230312093134041.png image-20230312093213966.png image-20230312093315603.png
上一篇 下一篇

猜你喜欢

热点阅读