NSThread的使用
jopen
9年前
创建和启动线程
-
一个NSThread对象就代表一条线程
-
创建和启动线程
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];
-
线程调度的优先级
+ (double)threadPriority; + (BOOL)setThreadPriority:(double)p; - (double)threadPriority; - (BOOL)setThreadPriority:(double)p; 调度优先级的取值范围是0.0 ~ 1.0,默认0.5,值越大,优先级越高
-
线程的名字
- (void)setName:(NSString *)n; - (NSString *)name;
其他创建线程的方式
-
创建线程后自动启动线程
[NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];
-
隐式创建线程
[self performSelectorInBackground:@selector(run) withObject:nil];
-
上述两种创建方式的优缺点
优点:简单快捷
缺点:无法对线程进行更细致的设置,没有获取到线程对象