理解iOS多线程应用的开发以及线程的创建方法

2020-01-14 17:25:43王旭

 

三、创建和启动线程简单说明
一个NSThread对象就代表一条线程

创建、启动线程

(1)

复制代码 NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];

 

[thread start];

// 线程一启动,就会在线程thread中执行self的run方法


 

 

主线程相关用法

复制代码
+ (NSThread *)mainThread; // 获得主线程

 

- (BOOL)isMainThread; // 是否为主线程

+ (BOOL)isMainThread; // 是否为主线程


 
其他用法

 

获得当前线程

复制代码
NSThread *current = [NSThread currentThread];
 

 

线程的调度优先级:调度优先级的取值范围是0.0 ~ 1.0,默认0.5,值越大,优先级越高

复制代码
+ (double)threadPriority;

 

+ (BOOL)setThreadPriority:(double)p;


 

 

设置线程的名字

复制代码
- (void)setName:(NSString *)n;

 

- (NSString *)name;


 

 

其他创建线程的方式
(2)创建线程后自动启动线程   [NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];
(3)隐式创建并启动线程  [self performSelectorInBackground:@selector(run) withObject:nil];
上述2种创建线程方式的优缺点
优点:简单快捷
缺点:无法对线程进行更详细的设置

四、多线程代码示例

1.使用古老的方式创建

复制代码
//
//  YYViewController.m
//