멀티 스레딩을 사용하는 이유
시간이 오래걸리는 작업 진행 시 어플리케이션의 실행을 방해하면 안되기에
멀티 코어에서 큰 작업을 여러개로 분할하여 진행해야 하기에
메모리 공간과 시스템 자원 절약하기 위해서
QoS란 global queue를 사용할때, 작업마다 중요도를 매겨서 순위에 따라 처리하는 것
User-interactive: 즉시 완료해야하는 작업을 나타냄. UI 업데이트, 이벤트 처리 등에 사용. 메인 스레드에서 실행되어야 함.
User-initiated: 사용자 상호 작용을 계속하는 데 필요한 작업을 기다리고 있을 때 사용.
Utility: 사용자에게 표시되는 진행률 표시가 있는 장기 실행 작업을 나타냄. 계산, I/O, 네트워킹, 연속 데이터 피드 및 유사한 작업에 사용. 우선 순위가 낮은 글로벌 큐에 매핑
Background: 사용자가 직접 알지 못하는 작업을 나타냄. 유저 관리 및 사용자 상호 작용이 필요하지 않고 시간에 민감하지 않은 기타 작업에 사용.
GCD, Operation 공부하자..
뷰와 관련된 작업 - 메인 스레드 - 메인큐 (시리얼 큐)
뷰의 흐름에 방해되는 작업 - 글로벌 스레드 - GCD(시리얼, 동시 둘다) or NSOperation q(동시큐)