多线程主要分为三种:NSThread、NSoperationQueue、GCD
NSThread 相比其他两个比较轻量级,创建线程简单,但是需要我们自己管理该线程,操作线程比较麻烦。不只是启动,还有该线程使 用完毕后的资源回收;
- 第一种:先创建线程,再启动线程
-
NSThread * thread = [[NSThread alloc]initWithTarget:self selector:@selector(run) object:nil];
-
thread.name = @"子线程";//可以为开辟的线程起名字
-
[thread start];//线程开始
-
[thread cancel];//线程取消
- 第二种:
- NSThread * thread = [[NSThread alloc]initWithBlock:^{
-
NSLog(@"initWithBlock");
[self run];
}];
-
[thread start];
-
第三种:创建线程后自动启动线程
-
[NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];