信号量:创建一个信号量,value为0;信号量的等待方法是等待信号量不为0的时候执行之后的程序,当接收到网络请求的响应后,发送信号量,打破等待;
异步组:使用异步组(dispatch group)可以实现在同一个组内的内务执行全部完毕之后再执行最后的处理。但是同一组内的异步任务的执行顺序是不可控的。
实现多个网络请求同步执行
使用串行队列和信号量机制使异步线程完成同步操作
或者:
实现多个网络请求执行完后刷新UI
①、用信号量和异步组实现异步线程同步执行
1、使用dispatch_group_notify监听队列的执行结果;
2、在队列的异步执行中使用信号量(dispatch_semaphore)来控制网络接口的请求为同步执行;
3、当刷新UI的时候一定要在主线程操作;
结果:
②、用异步组实现异步线程同步执行
1、使用dispatch_group_notify监听队列的执行结果;
2、使用异步组的enter和leave方法控制网络接口的请求为同步执行;
3、当刷新UI的时候一定要在主线程操作;
结果: