디스패치 큐(Dispatch Queue)라는건 일종의 스레드 개념과 비슷하다. 클로져로 구성된 태스크(Task)를 이 큐(Queue)에다 등록하면 별도의 스레드에서 이 큐의 내용물을 뽑아서 해당 스레드에서 태스크를 구동시키게 해 주는 문 역활을 한다. 물론 큐가 1:1로 스레드와 연결되는 건 아니다. 큐에는 직렬큐(Serial Queue)와 병렬큐(Concurrent Queue)가 있다. 큐의 태스크는 단일 스레드에서 직렬로 돌아갈 수도 있고 병렬로 태스크 갯수 만큼의 스레드에서 모두 병렬로 돌아갈 수도 있다. 이미 GCD 기초글에서 메인큐(Main Queue)와 글로벌 큐(Global Queue)를 사용하는 방법에 대해서 다루었었는데, 이번에는 커스텀 큐를 만들어서 병렬 프로그래밍을 하는 방법 중 기초적인 것들을 알아보자. 다만 큐 생성 부분을 제외하면 기본적으로 동일하다보니 별로 볼 내용은 없을지도 모른다. -_-; Update: Swift 3 기반의 문법으로 업데이트 하였다.