dispatch_async 호출에 대한 dispatch_async 호출과 dispatch_sync 호출에 대한 일반적인 관용을 보았습니다.dispatch_async에 대한 dispatch_async 호출과 dispatch_sync 호출에 대한 dispatch_async 호출
경우에 따라 후자를 전자로 대체 할 수 있습니다. 질문은 어떤 상황에서 하나만 사용할 수 있습니까? 당신이 dispatch_async
내부에 다른 코드가 있고 dispatch_sync
완료 내부 코드 뒤에 실행하는 코드를 원하는 경우
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
//
});
});
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_sync(dispatch_get_main_queue(), ^{
//
});
});
C 코드가 없으면 논리적 인 효과가 동일하지만 실용적인 효과는 스레드를 점유했지만 아무것도하지 않는 것입니다. –