美文网首页
AFNetworking之异步请求并发

AFNetworking之异步请求并发

作者: 过客又见过客 | 来源:发表于2017-08-26 20:57 被阅读712次

忘了for循环,忘了艰涩难懂的信号量。多了不说上代码,不懂自己脑补。

@interface ViewController ()
@property (nonatomic, strong) dispatch_queue_t queue;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.queue = dispatch_queue_create("com.test.queue", DISPATCH_QUEUE_CONCURRENT);
    dispatch_group_t group = dispatch_group_create();
    dispatch_queue_t groupQueue = dispatch_queue_create(0, 0);
    
    __weak typeof(self) weakSelf = self;
    dispatch_group_async(group, groupQueue, ^{
        dispatch_group_enter(group);
        [weakSelf asynTestFunction2:group];
    });
    
    dispatch_group_async(group, groupQueue, ^{
        dispatch_group_enter(group);
        [weakSelf asynTestFuction1:group];
    });
    dispatch_group_notify(group, groupQueue, ^{
        NSLog(@"测试方法执行完毕");
    });
}

- (void)asynTestFuction1:(dispatch_group_t)group
{
    dispatch_async(self.queue, ^{
        for (NSInteger i = 0;i < 10;i++) {
            NSInteger index = i;
        }
        NSLog(@"执行方法一");
        dispatch_group_leave(group);
    });
}

- (void)asynTestFunction2:(dispatch_group_t)group
{
    dispatch_async(self.queue, ^{
        for (NSInteger i = 0;i < 10000;i++) {
            NSInteger index = i;
        }
        NSLog(@"执行方法二");
        dispatch_group_leave(group);
    });
}
@end

执行结果如下:

2017-08-26 20:51:30.423169+0800 GCDGroupTest[5009:494839] 执行方法一
2017-08-26 20:51:30.423171+0800 GCDGroupTest[5009:494837] 执行方法二
2017-08-26 20:51:30.423378+0800 GCDGroupTest[5009:494839] 测试方法执行完毕

可加群一起交流共同学习:801216530。

相关文章

网友评论

      本文标题:AFNetworking之异步请求并发

      本文链接:https://www.haomeiwen.com/subject/ydyvdxtx.html