学习IOS开发网络多线程篇--NSThread/GCD/

  NSThread:利用NSThread创建和启用一个线程

1. NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];,调用后调用[thread start];

2. 创建线程后自动启动线程 ,[NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];

3. 隐式创建并启动线程,[self performSelectorInBackground:@selector(run) withObject:nil];

  线程的五种状态:新建/就绪/运行/阻塞/死亡,在内存中有可调度内存池,当内存处于就绪状态被加载到调度池中,当线程阻塞时,将移到内存,在cpu调度过程中,运行与就绪状态来回切换,当线程运行结束(异常/强制退出)后线程不会被移出内存. 可以通过[NSThread exit],强行让线程进入死亡状态;

学习IOS开发网络多线程篇--NSThread/GCD/

时间: 2024-12-26 18:27:28

学习IOS开发网络多线程篇--NSThread/GCD/的相关文章

iOS开发之多线程篇 多线程简介

iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 3.线程的

iOS开发——网络Swift篇&NSURL进行数据请求(POST与GET)

NSURL进行数据请求(POST与GET) 使用Swift进行iOS开发时,不可避免的要进行远程的数据获取和提交. 其数据请求的方式既可能是POST也可能是GET.同不管是POST还是GET又可以分为同步请求和异步请求. 下面通过四个例子来进行演示. 1,使用POST方式提交数据(用户id和分数) (1)同步请求 1 //保存分数 2 func saveScore(score:Int, userid:String) 3 { 4 let urlString:String = "http://han

iOS开发——网络OC篇&网络爬虫简单介绍

网络爬虫简单介绍 先来看看网络爬虫的基本原理: 一个通用的网络爬虫的框架如图所示: 网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中.此外,将这些URL放进已抓取URL队列. 4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环. 以下内容均为本人个人

iOS开发网络多线程之多图下载

一. ?多线程中多图片下载 头像通过网络下载得到 效果图如下: 二. 设计思路 ?利用tableView实现多行数据的现实,图标通过网络下载很耗时,需要在子线程中执行. ?cell中的ImageView的设置: 1. 首先到图片缓存池中取(定义一个存放图片的的字典属性),如果有直接设置; 2. 如果图片缓存池没有,再到沙盒缓存cache中查看是否存在,如果有直接设置,并把沙盒中的图片写入到图片缓存池中 3. 如果沙盒cache中也没有,就需要开线程下载; 4. 首先判断当前图片是否有任务在下载(

iOS开发——网络Swift篇&JSON与XML数据解析

JSON与XML数据解析 JSON数据解析(内置NSJSONSerialization与第三方JSONKit) 一,使用自带的NSJSONSerialization 苹果从IOS5.0后推出了SDK自带的JSON解决方案NSJSONSerialization,这是一个非常好用的JSON生成和解析工具,效率也比其他第三方开源项目高. NSJSONSerialization能将JSON转换成Foundation对象,也能将Foundation对象转换成JSON,但转换成JSON的对象必须具有如下属性

iOS开发网络多线程之网络请求文件解析

一.网络请求 1. get请求 1> 确定URL 2> 创建请求 3> 发送连接请求(网络请求用异步函数) - (void)get {    // 1.url    NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login?username=520it&pwd=520it&type=JSON"];        // 2.请求    NSURLRequest *reque

iOS开发——网络Swift篇&NSURLSession加载数据、下载、上传文件

NSURLSession加载数据.下载.上传文件 NSURLSession类支持三种类型的任务:加载数据.下载和上传.下面通过样例分别进行介绍. 1,使用Data Task加载数据 使用全局的sharedSession()和dataTaskWithRequest方法创建. 1 func sessionLoadData(){ 2 //创建NSURL对象 3 let urlString:String="http://hangge.com" 4 var url:NSURL! = NSURL(

iOS开发多线程网络———多线程概念及GCD

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(htt

iOS开发网络篇—大文件的多线程断点下载(转)

http://www.cnblogs.com/wendingding/p/3947550.html iOS开发网络篇—多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了同时开启多条线程下载一个较大的文件.因为实现过程较为复杂,所以下面贴出完整的代码. 实现思路:下载开始,创建一个和要下载的文件大小相同的文件(如果要下载的文件为100M,那么就在沙盒中创建一个100M的文件,然后计算每一段的下载量,开启多条线程下载各段的数据,分别写入对应的文件部分). 项目中用到的主要