개요
iOS에서 제공하는 Dispatch Queue에 대해 소개합니다.
1. Main Queue
- 오직 한 개만 존재
- Serial한 task 처리
- 메인 스레드에서 동작
2. Global Queue
- 병행성(Concurrency)를 제공하는 Queue
- QoS(Quality of Service)에 따라 다양한 종류로 다뉨
- 작업 순서가 보장되지 않음
2.1 QoS
Dispatch Queue에서 작업의 중요도를 의미한다. 우선순위가 높은 작업 처리에 더 많은 스레드를 배치한다.
- userInteractive
UI 업데이트, 애니메이션 등 사용자 행동에 대한 즉각적인 반응을 기대하지만 꽤 큰 작업일 때 사용 - userInitiated
1과 비슷하게 즉각적인 결과가 필요하지만 약간 늦을 수 있음 - default
일반적인 작업 - utility
데이터 다운로드와 같이 progress bar와 함께 길게 실행되는 작업 - background
유저가 직접적으로 인지하지 않는 시간이 덜 중요한 작업 (eg. 동기화, 백업) - unspecified
QoS 정보가 없음
3. Custom Queue
- 커스텀으로 생성하는 Queue
- QoS 설정 가능
- 디폴드로는 serial이고, concurrent도 가능하다.
'iOS' 카테고리의 다른 글
[iOS] Weak, Strong Reference (0) | 2022.05.15 |
---|---|
[iOS] Auto Referencing Counting (0) | 2022.04.24 |