1.GCD
特點:易用,易讀,直觀,靈活,高性能
gcd其實沒有線程的概念,其實gcd的多線程是由于多任務(wù)概念帶來的效果
//創(chuàng)建子線程執(zhí)行dispatch_async(dispatch_get_global_queue(0, 0), ^{ //... });//在主線程執(zhí)行dispatch_async(dispatch_get_main_queue(), ^{ //... });
2.NSThead
特點:基礎(chǔ),易維護
NSThread* myThread = [[NSThread alloc] initWithTarget:self selector:@selector(threadInMainMethod:) object:nil];
[myThread start];
[NSThread detachNewThreadSelector:@selector(threadInMainMethod:) toTarget:self withObject:nil];
3.NSOperation
特點:系能高,安全可靠,功能強大,控制性強,線程池實現(xiàn)
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^(){
NSLog(@"執(zhí)行第1次操作,線程:%@", [NSThread currentThread]);
}];
NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^(){
NSLog(@"執(zhí)行第2次操作,線程:%@", [NSThread currentThread]);
}];
// operation1依賴于operation2
[operation1 addDependency:operation2];
[queue addOperation:operation1];
[queue addOperation:operation2];
4.performSelectorInBackground
特點:易用,清潔,同NSThead
[self performSelectorInBackground:@selector(run) withObject:nil];