多线程使用

根据使用场景来使用多线程,更好的理解相应的方法

场景一: 需要执行一个网络请求方法,和弹出提示框方法,在进行下一步操作

需要执行的方法 – 分析

网络请求方法,方法中请求了一个并行同步线程
弹出提示框,获取到主线程 UI

方法一
信号量
1
2
3
4
创建信号量(0)
【网络请求
请求成功或失败 信号量计数改变】
信号量不为0,程序继续执行

示例

方法二
group
1
2
3
4
5
enter group
【网络请求
请求成功或失败 leave group

nofity
1
2
3
4
5
6
7
8
9
10
11
let group = DispatchGroup()
group.enter()
request.post(url: ,para: ,success: {
group.leave()
}) ,{
<!-- false -->
group.leave()
}
group.notify(queue: ){
<!-- 未指定线程,参数 queue 使用 .mian -->
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!