博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS同步下载
阅读量:4310 次
发布时间:2019-06-06

本文共 703 字,大约阅读时间需要 2 分钟。

在IOS的客户端与服务器交互的时候为的是获取数据,因为有一些持久化数据的方法是在应用程序本地用的。是在没有wifi的情况下才会用到类似数据库Sqlite3一种轻量级的嵌入式数据库)。

那么进入话题下面介绍用通过 NSURLConnection 向服务器发送一个同步的请求来获取数据。有的人说同步请求一定会造成线程阻塞的问题,这不一定。在主线程发送一个同步请求一定会阻塞线程的,那么在开辟一个新的线程则不会阻塞线程的。就像异步的效果。

NSURLConnection提供了两种方式来实现连接,一种是同步的另一种是异步的,异步的连接将会创建一个新的线程,这个线程将会来负责下载的动作,同步的连接将会堵塞当前的线程,也就是说会造成当前的主线程堵塞,直到这个同步的线程运行完毕将会继续运行主线程。

许多开发者都会认为同步的连接将会堵塞主线程,其实这种观点是错误的。一个同步的连接从它开始运行时就会堵塞主线程。如果你在主线程中创建一个同步连接,没错,主线程会阻塞。但是如果你并不是从主线程开启的一个同步的连接,它将会类似异步的连接一样。因此这种情况并不会堵塞你的主线程。事实上,同步和异步的主要区别就是运行的时候是否会创建一个新的线程,异步的会创建一个新的,而同步的并不会。

这段代码在不下载完会出现不会返回的情况。

这段代码是发送同步请求的一个方法。

在一些应用程序中应该避免同步请求很大的文件。

可以开辟一个新的线程达到异步的效果。

getData这个方法放处理同步请求的过程。

转载于:https://www.cnblogs.com/qiqibo/archive/2012/09/02/2667878.html

你可能感兴趣的文章
python,shell,locale,charset
查看>>
CSS基础知识点笔记
查看>>
2016中国大学生程序设计竞赛(长春)-重现赛 1010Ugly Problem 回文数 模拟
查看>>
冒泡、选择、插入排序
查看>>
从小白到区块链工程师:第一阶段:Go语言的控制台输入和输出(3)
查看>>
iOS开发系列--通知与消息机制
查看>>
16.jQuery属性操作
查看>>
sonar安装
查看>>
使用chrome开发者工具中的performance面板解决性能瓶颈
查看>>
bzoj:3392: [Usaco2005 Feb]Part Acquisition 交易
查看>>
MyBatis源码解析(一)
查看>>
JavaScript基础
查看>>
迪丽瑟斯特产网——选题报告(团队)
查看>>
linux下编译upx 3.93
查看>>
图像滤波
查看>>
猜年龄游戏
查看>>
博客园在线运行及一键转载
查看>>
zigbee
查看>>
字符串 专题
查看>>
【Maven】---Linux搭建Nexus3.X私服
查看>>