GCD 기초
GCD
Grand Central Patch 의 약자이다.
어떤 처리해야할 일을 GCD의 넘기면 GCD는 FIFO 정책을 수용하는 queue에 담고 시스템에 의해 안전하게 실행 될 수 있도록 한다.
GCD 에서 사용하는 큐를 DispatchQueue 라고 한다.
타입
- Main Queue
- 메인 쓰레드에서 작동하는 큐, UI 작업이나 사용자 언터렉션을 여기서 처리한다.
- Global Queue
- 시스템에 의해 관리되는 큐
- QoS(Quality of Service) 에 의해서 처리할 작업의 순서가 정해짐
- userInteractive : 바로 수행되어야 할 작업, 급한 것
- userInitiated : 사용자의 결과를 기다리는 것, 거의 바로 수행되어야 할 것
- default
- unility : 무거운 작업. 네트워킹이나 파일 불러오기
- background : 사용자에게 당장 인식 될 필요가 없는 작업
- Custom Queue
- 개발자가 직접 생성한 큐
Sync & Async
Async : 비동기 실행으로서 앞에 결과가 끝나기도 전에 뒤에 결과가 실행됨. QoS 에 의해 우선순위가 정해짐
Sync : 동기 실행은 앞에 작업이 끝나야 뒤에 적힌 코드가 실행됨.