方式1 dispatch_group_enter && dispatch_group_leave
?? dispatch_group_t group = dispatch_group_create();
?? dispatch_group_enter(group);
?? [self getAdvertList:^(BOOL iscomple) {
?? ? ? dispatch_group_leave(group);
?? }];
?? // requset2
?? dispatch_group_enter(group);
?? [self getHotCultureList:^(BOOL iscomple) {
?? ? ? dispatch_group_leave(group);
?? }];
?? dispatch_group_notify(group, dispatch_get_main_queue(), ^{
?? ? ? //等待requset1, requset2均調(diào)用dispatch_group_leave則進(jìn)入dispatch_group_notify
? ? }
方式2 dispatch_semaphore_t
//信號量
? ? ? ? dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
? ? ? ? //創(chuàng)建全局并行
? ? ? ? dispatch_group_t group = dispatch_group_create();
? ? ? ? dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
? ? ? ? //任務(wù)一
? ? ? ? dispatch_group_async(group, queue, ^{
? ? ? ? ? ? [self getAdvertList:^(BOOL iscomple) {
? ? ? ? ? ? ? ? dispatch_semaphore_signal(semaphore);
? ? ? ? ? ? }];
? ? ? ? });
? ? ? ? //任務(wù)二
? ? ? ? dispatch_group_async(group, queue, ^{
? ? ? ? ? ? [self getHotCultureList:^(BOOL iscomple) {
? ? ? ? ? ? ? ? dispatch_semaphore_signal(semaphore);
? ? ? ? ? ? }];
? ? ? ? });
? ? ? ? dispatch_group_notify(group, queue, ^{
? ? ? ? ? ? //6個任務(wù),6個信號等待.
? ? ? ? ? ? dispatch_semaphore_wait(semaphore,DISPATCH_TIME_FOREVER);
? ? ? ? ? ? dispatch_semaphore_wait(semaphore,DISPATCH_TIME_FOREVER);
? ? ? ? ? ? //這里就是所有異步任務(wù)請求結(jié)束后執(zhí)行的代碼
? ? ? ? ? ? //[self.home TableView.mj_header endRefreshing];
? ? ? ? ? ? //這里兩個網(wǎng)絡(luò)請求結(jié)束后。獲取到的。一個參數(shù)用于第三個借口參數(shù)
? ? ? ? ? ? NSLog(@"------------4444444444444444-xin hao-------%@", self.imeiStr);
? ? };