iOS之多线程1-NSThread简介

关于多线程在iOS中的重要性,就不废话了.就一个字:重要 ! ^_^

iOS中常用的三种多线程方式:NSThread , GCD, NSOpertaion

虽然NSThrea排在第一位(几乎所有的介绍多线程的书籍都是这么排序),但用的最少,原因:没有后面的两个小弟用起来体贴.

作为多线程的大哥,NSThread几乎已经躲到幕后了.

NSThread是从Mac OS 系统引入到iOS中的,在Mac OS 10.5之前,NSThread的启用方法只有一个: detachNewThreadSelector:toTarget:withObject:

在10.5之后,苹果又添加了一个看起了更加简约的启用方式:start

并且在10.5之后,继承NSThread的子类,可以重写main方法(线程的一个入口方法)后,不用再调用super的main方法;

关于NSThrea的学习归纳大纲:

1. 初始化

  - (id)init

// 这个方法设计的目的,就是用来初始化一个实例,

  - (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument

         // target: 用来接收消息selector的对象 (换句话就是调用target的select方法);

    // selector:发送给target的消息,(target的selector方法),这个消息只能有一个参数,并且不能有返回值;

    // argument :传递给target的一个对象,可以是nil;

垃圾回收机制一直是苹果开发的一个问题,做了很久的iOS也会有人认为OC是没有垃圾回收,其实这个说法不完全正确;严格的说,在iOS下的OC是没有垃圾回收的,在Mac下,OC是有垃圾回收机制的;

在没有垃圾回收机制的情况下,selector方法会维护一个自动释放池,并将Target和argument放进自动释放池中,当线程退出的时候,会release掉这个自动释放池;

在有垃圾回收机制的情况下,不会产生这个自动释放池;

/*****************************后续预告******************************

2. 使用 (启动进程 / 停止进程 / ...)

3.状态查询处理 ( 是否主主线程 / 是否多线程 / 设置优先级 / ...)

4.通知 (三种通知消息)

***********************************************************************/

iOS之多线程1-NSThread简介

时间: 2024-08-24 11:47:48

iOS之多线程1-NSThread简介的相关文章

iOS开发多线程网络———NSThread

@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); iOS开发多线程网络———NS

IOS开发 多线程编程 - NSThread

每个iOS应用程序都有个专门用来更新显示UI界面.处理用户的触摸事件的主线程,因此不能将其他太耗时的操作放在主线程中执行,不然会造成主线程堵塞(出现卡机现象),带来极坏的用户体验.一般的解决方案就是将那些耗时的操作放到另外一个线程中去执行,多线程编程是防止主线程堵塞,增加运行效率的最佳方法 iOS支持多个层次的多线程编程,层次越高的抽象程度越高,使用也越方便,也是苹果最推荐使用的方法.下面根据抽象层次从低到高依次列出iOS所支持的多线程编程方法: 1.Thread :是三种方法里面相对轻量级的,

[第2章]多线程:NSThread简介

一.说明 操作的是线程,不是封装好的队列或队列:适用于长时间一直使用的子线程. 二.方法 1.睡眠 // 1.睡到指定时间. class func sleepUntilDate(date: NSDate) // 2.跟sleep()一样(PS:typealias NSTimeInterval = Double) class func sleepForTimeInterval(ti: NSTimeInterval) 2.线程运行Selector NSThread.detachNewThreadSe

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

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

iOS多线程-NSThread

本文转载自嘟嘟夜未央的博文:http://www.cnblogs.com/huluo666/p/3645889.html,修改了部分代码和贴图,如有侵犯版权请与我联系删除. 多线程这个概念的接触是蛮早的时候了,当时还是单核单CPU的时候,Thread这个概念已经出现了,当时比较流行的方案是时间片轮流,线程可以优先级抢占,但一次只能运行一个线程,实际上多线程是不能真正并行处理的,只是宏观上表现的多线程在齐头并进.现在硬件进步了很多,多核的CPU时代来临了,于是线程开始了真正意义上的并行处理,多线程

iOS开发-多线程-NSThread

iOS开发多线程篇—创建线程 一.创建和启动线程简单说明 一个NSThread对象就代表一条线程 创建.启动线程 (1) NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil]; [thread start]; // 线程一启动,就会在线程thread中执行self的run方法 主线程相关用法 + (NSThread *)mainThread; // 获得主线程 -

iOS开发-多线程-简介

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

学习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. 隐式创建

IOS UI多线程 NSThread 下载并显示图片到UIImageView

效果图 @property (weak,nonatomic)IBOutletUILabel *downLabelInfo; @property (weak,nonatomic)IBOutletUIImageView *imageView; @end @implementationViewController - (void)viewDidLoad { [super viewDidLoad]; NSString *url  [email protected]"http://d.hiphotos.b