일을 효율적으로, 그리고 동시에 처리하기 위해서는 스레드를 여러 개 활용하은 것은 불가피함
그렇다면 어떻게 스레드를 관리해야 하나?
애플에서는 코드로서 sync/async처리만 해준다면 시스템에서 알아서 스레드를 관리해주는 방식을 제공 - GCD
GCD
- Grand Central Dispatch의 약자
- 멀티 코어 환경과 멀티 스레드 환경에서 최적화된 프로그래밍을 할 수 있도록 애플이 개발한 기술
- 개발자가 직접 코어와 스레드를 관리하지 않아도 시스템에서 알아서 관리를 해줌
- GCD를 사용하기 위해서는 Dispatch라는 프레임 워크 사용
- DispatchQueue라는 클래스를 주로 사용
DispatchQueue 1 : Serial / Concurrent
Main Thread
DispatchQueue 2: sync / async
DispatchWorkItem
헷갈리는 개념 다시 잡기