• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

디스패치 그룹

22.12.19 22:07 작성 조회수 215

1

안녕하세요. 디스패치 그룹 강의를 보았습니다.

그룹1을 만들어

DispatchQueue.global.aysnc를 실행 시키면서 그룹1에 넣고

notify가 그룹의 종료를 알려준다고 하시는데,

만약 for문으로 10개를 생성하는 상황에 6번째를 생성하기전에 5번째까지 동작이 모두 끝나버린다면 notify가 실행되고 다음 6번째부터 새로 그룹에 들어가는건가요??

답변 1

답변을 작성해보세요.

0

안녕하세요 지태님.

(그런 상황을 만들 수 있는 지.. 코드로 직접 한번 실험을 해보시면 좋을 것 같긴한데..)
일반적으로 그런 상황은 생기지 않을 것 같긴합니다.

for문에서 (오래걸리는) 일을 보내고 끝날때까지 기다리진 않지만, 일을 시작시키는 것은
아주 빠른 시간 안에 일어나기 때문에..
실제로 그런 상황을 코드로 만들기 어려울 뿐더러..

뒤에서 배우는 비동기 디스패치 그룹으로 enter/leave를 사용하시면,
enter의 갯수를 세고, (말씀드렸던 것처럼 일의 시작은 빠르게 발생하기 때문에)
leave의 갯수를 나중에 세는 메커니즘으로 동작되기때문에

우려하시는 그런 상황은 생기지 않을 것 같습니다.

직접 한번 해보시면.. 제가 왜 이런 말씀을 드리는지 알게 되실 것 같습니다. :)

 

감사합니다..!