일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- deadlock
- decode
- 앨런
- 데드락
- 운영체제
- 100 days of SwiftUI
- COLOR
- UserDefaults
- struct
- Linked List
- 프로세스 스케줄링
- Codable
- 오브젝트
- 인프런
- 동시성
- forEach
- 동기화
- IOS
- 비동기
- SwiftUI
- 가상 메모리
- core data
- Apple Developer Academy
- @state
- 알고리즘
- Swift
- Algorithm
- async
- 상호배제
- scrollview
Archives
- Today
- Total
기어가더라도 제대로
7. Dispatch Group 개념 본문
목차
디스패치 그룹의 개념
디스패치 그룹의 사용
디스패치 그룹과 동기함수
디스패치 그룹과 비동기함수
(참고) Dispatch workItem
(심화) Semaphore의 이해
디스패치 그룹의 개념
여러 스레드로 보낸 그룹으로 묶인 작업들이 대략적으로 언제 끝나는지 알고 싶을 때 사용
예) 이미지 다운로드가 다 완료된 시점에서 이미지를 활용하는 뷰 띄우기
작업을 큐에 보낼 때 해당 작업(Group1)의 꼬리표를 달아주고
모든 작업이 끝났을 때 `.notify(queue:)` 를 이용해서 완료시 할 작업을 설정
동기적인 기다림
모든 작업이 완료될 때까지 현재 대기열을 차단하는 동기적인 방법
- `DispathGroup().wait`
만약 작업이 완료되길 기다리는 것을 동기적으로 기다리는데
미래에 완료되지 않는다면?
무작정 기다릴 수는 없으니, 그 한계를 정하는 것이
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