[iOS] dispatch_group_notify 의 사용법
출처
dispatch_group_notify
dispatch_group_notify(<#dispatch_group_t _Nonnull group#>, <#dispatch_queue_t _Nonnull queue#>, <#^(void)block#>)
param
예제
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t globalQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_group_async(group, globalQueue, ^{
NSLog(@"job 1 Start!");
[NSThread sleepForTimeInterval:3];
NSLog(@"job 1 End!");
});
dispatch_group_async(group, globalQueue, ^{
NSLog(@"job 2 Start!");
[NSThread sleepForTimeInterval:3];
NSLog(@"job 2 End!");
});
dispatch_group_async(group, globalQueue, ^{
NSLog(@"job 3 Start!");
[NSThread sleepForTimeInterval:3];
NSLog(@"job 3 End!");
});
dispatch_queue_t mainQueue = dispatch_get_main_queue();
dispatch_group_notify(group, mainQueue, ^{
NSLog(@"Notify Start!");
if ([NSThread isMainThread]) {
NSLog(@"Here is MainThread");
} else {
NSLog(@"Here is Not MainThread");
}
NSLog(@"Notify End!");
});
NSLog(@"End!");