线程 NSThread 多线程 获取当前线程

  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: //同上

    原文作者:WenyHoooo
    原文地址: https://blog.csdn.net/qq871531334/article/details/19635207
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞