多线程 NSThread

2016-06-19  本文已影响21人  小小Q吖

一 NSThread的基本使用
1)NSThread创建的四种方式
第一种 创建方式alloc initwith ....
特点 : 需要手动启动线程 可以拿到线程对象进行详细设置
创建线程
NSThread *thread = [[NSThread alloc]initWithTarget:self selector@selector(run:) object :@""];
启动线程
[thread start];
第一个参数: 目标对象
第二个参数 :选择器 ,线程青要调用哪个方法
第三个参数:前面方法要接受的参数(最大只能接受一个参数,没有就写nil)

第二种创建线程的方式:分离出一条子线程
特点:自动启动线程,无法对线程进行更详细的设置
[NSThread detachNewThreadSelector: @selectot:(run:) toTarget:self withObject:@""
第一个参数:线程启动调用的方法
第二个参数:目标对象
第三个参数:传递给调用方法的参数
第三章创建线程的方式:后台创建
特点:自动启动线程 ,无法进行更详细的设置
[self performSelectorBackground:@seletor(run:) withObject:@""];

第四种 自定义
需要自定义NSThread类重写内部方法实现

设置线程属性
设置线程名称
thread.name =@""
设置线程的优先级,优先级的取值范围是0.0-1.0 1.0表示最高 在不设置状态下 默认是0.5
thread.threadpriority = 1.0

二 线程状态
线程的各种状态 :新建 就绪 运行 阻塞 死亡
常用的控制线程状态的方法
[NSThread exit] 退出当前线程
[NSThread sleepForTimeInteval:2.0] 阻塞线程
[NSThread sleepUntiDate:[NSDate dateWithTimeIntervalSinceNow:2.0]] 阻塞线程
注意线程死后不能复生

上一篇下一篇

猜你喜欢

热点阅读