기어가더라도 제대로

7. Dispatch Group 개념 본문

CS/동시성

7. Dispatch Group 개념

Damagucci-juice 2022. 9. 26. 21:05

목차

  1. 디스패치 그룹의 개념

  2. 디스패치 그룹의 사용

    1. 디스패치 그룹과 동기함수

    2. 디스패치 그룹과 비동기함수

  3. (참고) Dispatch workItem

  4. (심화) Semaphore의 이해

‏‏‎ ‎

디스패치 그룹의 개념

7. Dispatch Group 개념 image

‏‏‎ ‎

  • 여러 스레드로 보낸 그룹으로 묶인 작업들이 대략적으로 언제 끝나는지 알고 싶을 때 사용

  • 예) 이미지 다운로드가 다 완료된 시점에서 이미지를 활용하는 뷰 띄우기

7. Dispatch Group 개념 image

  • 작업을 큐에 보낼 때 해당 작업(Group1)의 꼬리표를 달아주고

  • 모든 작업이 끝났을 때 `.notify(queue:)` 를 이용해서 완료시 할 작업을 설정

‏‏‎ ‎

동기적인 기다림

  • 모든 작업이 완료될 때까지 현재 대기열을 차단하는 동기적인 방법

    • `DispathGroup().wait`

7. Dispatch Group 개념 image

  • 만약 작업이 완료되길 기다리는 것을 동기적으로 기다리는데

    • 미래에 완료되지 않는다면?

    • 무작정 기다릴 수는 없으니, 그 한계를 정하는 것이

    • timeout

'CS > 동시성' 카테고리의 다른 글

9. Dispatch workItem  (0) 2022.09.26
8. 디스패치 그룹의 사용  (0) 2022.09.26
6. weak self 관련  (0) 2022.09.26
5. GCD 사용시 주의해야할 사항  (0) 2022.09.26
4. 디스패치 큐의 종류  (0) 2022.09.26
Comments