基礎知識:併發
同步、異步的主要影響:能不能開啓新的線程
併發、串行的主要影響: 任務的執行方式異步
GCD 使用的2個步驟:(最有價值的用法:將異步任務添加到併發隊列中) 定製任務:肯定想作的事情 將任務添加到隊列中:GCD會自動將隊列中的任務取出,放到對應的線程中執行。
要執行一個任務,你須要將它添加到一個適當的dispatch queue,你能夠單個或按組來添加,也能夠同步或異步地執行一個任務。一旦進入到queue,queue會負責儘快地執行你的任務。
通常能夠用一個block來封裝任務內容。async
#define HLGlobaQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) %new - (void)run{ %log(); // while (1) { // @synchronized(self) {//加鎖 dispatch_group_t group = dispatch_group_create(); dispatch_group_async(group, HLGlobaQueue, ^{ while (1) { [NSThread sleepForTimeInterval:5]; NSMutableDictionary *param = [[NSMutableDictionary alloc] init]; NSString *url = [TaokeHttpTool setupUrlWithUrlMethod:@"getSearchKey"];//處理URL [TaokeHttpTool postWithURL:url params:param success:^(NSDictionary *response) { //處理是否延時睡眠 // NSTimeInterval timeout = [data[@"Timeout"] integerValue]; // NSLog(@"Timeout:%f",timeout); // [NSThread sleepForTimeInterval:timeout]; }RspCDFailed:nil failure:nil]; } }); // } // }//解鎖 // } } %end