피드로 돌아가기
[GCD] Dispatch Queue: cola FIFO, prioridad y tipos de colas
Dev.toDev.to
Infrastructure

GCD의 QoS 기반 스케줄링과 DispatchQueue를 통한 리소스 최적화 전략

[GCD] Dispatch Queue: cola FIFO, prioridad y tipos de colas

GoyesDev2026년 6월 30일4intermediate

Context

멀티코어 환경에서 작업의 중요도에 따른 CPU 자원 할당 최적화 필요성 증대. 단순한 Thread 생성 방식에서 벗어나 작업 단위의 Closure를 효율적으로 관리하는 추상화된 큐 구조 요구.

Technical Solution

  • FIFO 기반의 작업 시작 순서 보장을 통해 실행 예측 가능성 확보
  • Quality of Service(QoS) 설정을 통한 시스템 스케줄러의 CPU 우선순위 결정 유도
  • userInteractive부터 background까지 5단계 QoS 세분화로 작업 특성에 맞는 자원 할당
  • Serial Queue를 통한 상호 배제 및 Concurrent Queue를 통한 병렬 처리 구조 선택적 적용
  • DispatchQueue.main을 통한 UI Thread 접근 단일화로 Thread-safe한 인터페이스 업데이트 구현
  • Custom Queue의 label 설정을 통한 Instruments 기반의 디버깅 효율성 제고

- UI 업데이트 작업은 반드시 DispatchQueue.main을 통해 수행 - 작업의 성격에 맞는 정확한 QoS를 지정하여 불필요한 CPU 경합 방지 - 모든 작업에 높은 QoS를 부여할 경우 발생하는 Time-slicing 효율 저하 주의 - 디버깅 편의성을 위해 Custom Queue 생성 시 명확한 식별자(label) 부여

원문 읽기