本文介绍多种多线程方法:xoxo_x总结
本文总结的几种多线程创建方法均为异步线程,除了最后GCD的同步线程外。
第一种:
NSThread *thread = [[NSThread alloc]initWithBlock:^{
NSLog(@"线程1");
}];
[thread start];
NSLog(@"主线程");
第二种:
[NSThread detachNewThreadWithBlock:^{
NSLog(@"线程2");
}];
NSLog(@"主线程");
第三种:
[self performSelector:@selector(doLog) withObject:self afterDelay:2];
NSLog(@"主线程");
- (void)doLog{
NSLog(@"线程3");
}
第四种:
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
[queue addOperationWithBlock:^{
NSLog(@"线程4");
}];
NSLog(@"主线程");
第五种:
NSOperationQueue *operaQueue = [[NSOperationQueue alloc]init];
NSInvocationOperation *op = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(doLog1) object:nil];
[operaQueue addOperation:op];
NSLog(@"主线程");
//maxConcurrentOperationCount 并发数量
//qualityOfService 优先级
- (void)doLog1{
NSLog(@"线程5");
}
第六种:
// ---------------GCD-----------------------
//第六种
dispatch_queue_t queue2 = dispatch_queue_create("queue", NULL);
dispatc