DispatchGroup 이란?
March 10, 2020 | 2 Minute Read
중고나라 앱 유지보수 중 Function Await 기능이 필요하게 되어 구글링을 해본 결과
DispatchGroup 이라는 기능을 알게 되었다.
아래의 코드는 group.enter()로 진입점을 알려주고, group.leave()로 탈출점을 알려주게 된다.
leave()가 되지 않는다면 이 함수 로직을 다시 호출 한다해도 반응하지 않게 된다.
아래는 구글링 해서 참고한 enter 부터 leave까지 비동기 처리 하는 작업에 대해 wait하도록 만든 참고 소스이다.
enter, leave를 사용하지 않고 사용하는 방법도 있는데, 이방법은 각각의 비동기 작업을 Group에 넣고
Group 의 notifi를 받게 되면, 비동기 작업 자체가 다 끝나야지만 notify가 오기때문에 enter, leave를
사용하지 않고도 wait 기능이 되게 된다.
참고한 코드는 아래와 같다.