多線程操做容許系統將某些須要一段時間來執行的操做放入其餘線程操做,從而解放主線程,使其能夠執行其餘操做。這使得用戶體驗更加流暢,同時減小了沒必要要的等待。
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]; });