dispatch_barrier_async能检测到当前那几个线程执行完毕,并在该位置执行你想要的操作
dispatch_queue_t queue = dispatch_queue_create("queue", DISPATCH_QUEUE_CONCURRENT);
dispatch_async(queue, ^{
DebugLog(@"线程1");
});
dispatch_async(queue, ^{
DebugLog(@"线程2");
});
dispatch_barrier_async(queue, ^{
DebugLog(@"我在这里!");
});
dispatch_async(queue, ^{
DebugLog(@"线程3");
});
dispatch_async(queue, ^{
DebugLog(@"线程4");
});
dispatch_barrier_async(queue, ^{
DebugLog(@"我在这里!");
});
dispatch_async(queue, ^{
DebugLog(@"线程5");
});
dispatch_barrier_async(queue, ^{
DebugLog(@"我在这里!");
});