GCD 기초

GCD

Grand Central Patch 의 약자이다.

어떤 처리해야할 일을 GCD의 넘기면 GCD는 FIFO 정책을 수용하는 queue에 담고 시스템에 의해 안전하게 실행 될 수 있도록 한다.

GCD 에서 사용하는 큐를 DispatchQueue 라고 한다.

타입

  1. Main Queue
    1. 메인 쓰레드에서 작동하는 큐, UI 작업이나 사용자 언터렉션을 여기서 처리한다.
  2. Global Queue
    1. 시스템에 의해 관리되는 큐
    2. QoS(Quality of Service) 에 의해서 처리할 작업의 순서가 정해짐
      1. userInteractive : 바로 수행되어야 할 작업, 급한 것
      2. userInitiated : 사용자의 결과를 기다리는 것, 거의 바로 수행되어야 할 것
      3. default
      4. unility : 무거운 작업. 네트워킹이나 파일 불러오기
      5. background : 사용자에게 당장 인식 될 필요가 없는 작업
  3. Custom Queue
    1. 개발자가 직접 생성한 큐

Sync & Async

Async : 비동기 실행으로서 앞에 결과가 끝나기도 전에 뒤에 결과가 실행됨. QoS 에 의해 우선순위가 정해짐

Sync : 동기 실행은 앞에 작업이 끝나야 뒤에 적힌 코드가 실행됨.