多线程操做容许系统将某些须要一段时间来执行的操做放入其余线程操做,从而解放主线程,使其能够执行其余操做。这使得用户体验更加流畅,同时减小了没必要要的等待。
ios
GCD是ios中比较优秀的多线程处理操做,下面对GCD简单介绍.多线程
1.建立一个队列app
全局队列:异步
dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
串行队列:async
dispatch_queue_t q = dispatch_queue_create(NULL, DISPATCH_QUEUE_CONCURRENT);
建立一个群组spa
dispatch_group_t g = dispatch_group_create();
群组内的操做所有完成时通知:线程
dispatch_group_notify(g, q, ^{ NSLog(@"操做完成了"); });
2.异步执行代码:code
dispatch_group_async(g, q, ^{ [self gcdScaleTicketsWithName:@"gcd - 3"]; });
得到主线程:
队列
dispatch_get_main_queue()
同步执行代码(更新UI的主线程队列里的操做在这里执行):get
dispatch_sync(dispatch_get_main_queue(), ^{ [self appendContentWithString:str]; });