第二种:NSObject

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     /**
 4      *  开启子线程的方式之一:NSObject
 5      */
 6     // 第一个参数:selector
 7     // 第二个参数:方法传递的参数
 8     [self performSelectorInBackground:@selector(threadAction) withObject:@"test"];
 9     self.view.backgroundColor = [UIColor cyanColor];
10 }
 1 // 实现子线程的方法
 2 - (void)threadAction {
 3 //    NSLog(@"hello world");
 4 //    NSLog(@"current = %@", [NSThread currentThread]);
 5 //    NSLog(@"main = %@", [NSThread mainThread]);
 6     // 回到主线程修改当前的背景颜色
 7     // 第三个参数:是否等待子线程完成之后进入主线程
 8     [self performSelectorOnMainThread:@selector(mainThreadction) withObject:nil waitUntilDone:YES];
 9 }
10 
11 // 实现主线程的方法
12 - (void)mainThreadction {
13     self.view.backgroundColor = [UIColor orangeColor];
14     NSLog(@"current = %@", [NSThread currentThread]);
15     NSLog(@"main = %@", [NSThread mainThread]);
16 }
原文地址:https://www.cnblogs.com/crazygeek/p/5503956.html