1.NSThread
(1)
NSThread *thread1 = [[NSThread alloc]initWithTarget:self selector:@selector(threadFunc) object:nil];
[thread1 start];//开启线程,开始运行threadFunc方法
//设置线程优先级,iOS8之前是这样设置的,现已被废弃
//[thread1 setThreadPriority:4];
//新的优先级设置方式:
[thread1 setQualityOfService:NSQualityOfServiceDefault];//设置优先级为默认
// NSQualityOfServiceUserInteractive 最高优先级,用于用户交互事件
// NSQualityOfServiceUserInitiated 次高优先级,用于用户需马上执行的事件
// NSQualityOfServiceUtility 普通优先级,用于普通任务
// NSQualityOfServiceBackground 最低优先级,用于最不重要的任务
// NSQualityOfServiceDefault 默认优先级,线程不设置优先级时默认使用这个
[NSThread detachNewThreadSelector:@selector(threadFunc) toTarget:self withObject:nil];
[self performSelectorInBackground:@selector(threadFunc) withObject:nil];
-(void)threadFunc{
// [NSThread currentThread];获取当前线程
// [NSThread mainThread];获取主线程
}
2.线程间通信
(1)在当前线程
[self performSelector:];
[self performSelector: withObject:];
[self performSelector: withObject: afterDelay:];
[self performSelectorOnMainThread: withObject: waitUntilDone:];
[self performSelector: onThread: withObject: waitUntilDone:];