首先你要注意以下几个问题:
1.网络请求的发送顺序
2.网络请求回调顺序
3.数据源修改与页面刷新
4.新插入与旧数据替换问题
5.数据源变更控制页面刷新时机与样式问题
解决方案如下:
1.使用GCD或者OperationQueue添加队列依赖或者栅栏
2.增加代码执行顺序逻辑(比如某个请求数据返回之后再执行下个请求)
3.数据源修改和页面刷新就没法说了,毕竟逻辑都不一样,你看自己的页面注意就行了
- 数据有先后依赖关系的话 就 group + 信号量 控制向后顺序
- 没有先后依赖关系的话 就一起发起
什么时候用到多线程
一、高并发
系统接受实现多用户多请求的高并发时,通过多线程来实现。
二、线程后台处理大任务
一个程序是线性执行的。如果程序执行到要花大量时间处理的任务时,那主程序就得等待其执行完才能继续执行下面的。那用户就不得不等待它执行完。
这时候可以开线程把花大量时间处理的任务放在线程处理,这样线程在后台处理时,主程序也可以继续执行下去,用户就不需要等待。线程执行完后执行回调函数。
三、大任务
大任务处理起来比较耗时,这时候可以起到多个线程并行加快处理(例如:分片上传)。
如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)
image.pngimage.png
网友评论