利用GCD實現 5秒請求一次接口

基礎知識:併發

同步、異步的主要影響:能不能開啓新的線程
併發、串行的主要影響: 任務的執行方式異步

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
相關文章
相關標籤/搜索