본문 바로가기

iOS

[iOS] Dispatch Queue

개요

iOS에서 제공하는 Dispatch Queue에 대해 소개합니다.

1. Main Queue

  • 오직 한 개만 존재
  • Serial한 task 처리
  • 메인 스레드에서 동작

2. Global Queue

  • 병행성(Concurrency)를 제공하는 Queue
  • QoS(Quality of Service)에 따라 다양한 종류로 다뉨
  • 작업 순서가 보장되지 않음

 

2.1 QoS

Dispatch Queue에서 작업의 중요도를 의미한다. 우선순위가 높은 작업 처리에 더 많은 스레드를 배치한다.

  1. userInteractive
    UI 업데이트, 애니메이션 등 사용자 행동에 대한 즉각적인 반응을 기대하지만 꽤 큰 작업일 때 사용
  2. userInitiated
    1과 비슷하게 즉각적인 결과가 필요하지만 약간 늦을 수 있음
  3. default
    일반적인 작업
  4. utility
    데이터 다운로드와 같이 progress bar와 함께 길게 실행되는 작업
  5. background
    유저가 직접적으로 인지하지 않는 시간이 덜 중요한 작업 (eg. 동기화, 백업)
  6. 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