[Swift] Dispatch (2)
2024. 1. 7. 11:56
이전 포스팅
[Swift] Dispatch (1)
Dispatch (Framework) 시스템에서 관리하는 Dispatch 대기열에 작업을 제출하여 Multi Core 하드웨어에서 코드를 동시에 실행 GCD(Grand Central Dispatch)라고 알려진 Dispatch에서는 macOS, iOS, watchOS 및 tvOS의 멀티코
kimkhuna99.tistory.com
sync(동기) vs async(비동기) → 작업을 보내는 시점에서 기다릴지 말지
serial(직렬) vs concurrent(동시) → Queue로 보내진 작업들을 여러 개의 Thread로 보낼지, 한 개의 Thread로 보낼 것 인지
DispatchQueue
- main queue
- 오직 한개만 존재
- Serial 특성을 가진 Queue
- Main Thread에서 처리 (UI 업데이트, 내용 처리) - global queue
- concurrent 특성을 가진 Queue
- QoS(Quality of Service)에 따라 여러 종류존재 - custom(private) queue
- 커스텀으로 제작
- Default는 Serial Queue → Concurrent로 변경 가능
- QoS 설정 가능
Qos(Quality of Service)
- userInteractive : 애니메이션, 이벤트 처리 또는 앱의 UI 업데이트와 같은 사용자 대화형 작업을 위한
QoS class (사용자와 직접 상호작용) - userInitiated : 사용자가 앱을 적극적으로 사용하지 못하게 하는 작업에 대한 QoS class (저장된 순서 열기)
- default : 기본 QoS class (일반적인 작업)
- utility : 사용자가 적극적으로 추적하지 않는 작업에 대한 QoS class (데이터 다운로드)
- background : 사용자가 생성하는 유지 관리 또는 정리작업에 대한 QoS class (동기화 및 백업)
- unspecified : QoS class의 정보가 없음(거의 사용하지 않음)
출처
[iOS] 차근차근 시작하는 GCD — 7
Dispatch Group의 개념에 대해 알아봅시다
sujinnaljin.medium.com
DispatchQueue | Apple Developer Documentation
An object that manages the execution of tasks serially or concurrently on your app's main thread or on a background thread.
developer.apple.com
728x90
'iOS > Concurrency' 카테고리의 다른 글
[Swift] DispatchQueue (3) - DispatchGroup (0) | 2024.04.20 |
---|---|
[Swift] Dispatch (1) (0) | 2023.11.23 |