我使用GCD dispatch_group_t来实现的,下面是我的代码,如果有不对的地方欢迎大家指出,下面贴代码:
__block NSInteger index = 0;
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_enter(group);
dispatch_group_async(group, queue, ^{
//循环创建50个线程
for (int i = 1; i <= 50; i++) {
sleep(2);//模拟耗时任务
NSLog(@"第%i个线程",i);
index ++;
if (index == 1) {
dispatch_barrier_async(queue, ^{
NSLog(@"wwwww第51个线程");
});
}
}
dispatch_group_leave(group);
});
dispatch_group_notify(group, queue, ^{
//
NSLog(@"所以线程执行完");
});