NSLog(@” 当前线程 %@”,[NSThread currentThread]);
NSLog(@” 主线程 %@”,[NSThread mainThread]);
线程 NSThread 多线程
线程与进程
进程
是一个活动的程序,一个容器
是系统资源管理的最小单位
切换代价较高
线程
是在进程容器中运行,实际工作的代码
是程序执行的最小单位
切换代价较低(由于线程是在同一块内存中进行切换的)
一个NSThread对象在程序中控制一个线程,当你有很多任务需要执行,但又不想阻塞主线程时,
多线程将会很有用。运用多线程可以同时执行多个任务。
NSThread的方法
//初始化
1、- (id)init //这个是NSThread的指定初始化方法
2、- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument
初始化一个线程,应该注意的是这个SEL只能有一个参数,并且选择的方法不能有返回值,
需要注意的是这个方法只是创建了一个线程,并没有开始这个线程,要用stat方法去开始线程
3、+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument
创建并开始一个线程。
4、- (void)start //开始一个线程
5、+ (void)sleepUntilDate:(NSDate *)aDate
阻塞当前线程,直到指定时间
6、+ (void)sleepForTimeInterval:(NSTimeInterval)ti
使线程睡眠一段时间
//判断线程状态
7、- (BOOL)isExecuting //判断线程是否正在执行
8、- (BOOL)isCancelled //判断线程是否已经取消
9、- (BOOL)isFinished //判断线程是否执行完
10、+ (BOOL)isMainThread //判断当前线程是不是主线程
11、+ (BOOL)isMultiThreaded //判断应用程序是否是多线程的
12、- (BOOL)isMainThread //判断制定的对象是否是主线程
13、+ (NSThread *)mainThread //返回一个主线程对象
14、+ (NSThread *)currentThread //返回当前的线程
15、+ (NSArray *)callStackReturnAddresses
返回的是这个线程在栈中所占的地址所组成的数组
16、+ (NSArray *)callStackSymbols //返回栈空间的符号
//线程属性
17、– threadDictionary //返回线程对象的字典
18、– name //返回线程名字
19、– setName: //设置线程名字
20、– stackSize //返回线程所占栈的空间大小
21、– setStackSize: //设置线程所占栈的空间大小
//线程优先权
22、+ threadPriority //返回当前线程的优先权,其实返回的是一个double型数字,
//从0.0 到1.0 其中1.0最高
23、– threadPriority //返回当前线程对象的优先权
24、+ setThreadPriority: //设置当前线程的有限权
25、– setThreadPriority: //同上