Dispatch Queue란?

작업항목의 실행을 관리하는 클래스입니다.


GCD의 개념으로 동시성 프로그래밍을 지원하는 스위프트의 API가 Dispatch Queue인 것

앱의 메인 스레드나 백그라운드 스레드에서 순차적으로 또는 동시에 작업 실행을 관리하는 개체입니다.

Untitled

Dispatch Queue를 사용하면, 개발자가 할 일은 하나로 줄어듭니다. 작업을 정의해서 Dispatch Queue에 넣어주는 일이죠. 운영체제는 Dispatch Queue에 있는 작업들을 적절한 스레드에 할당하게 됩니다. 이 때문에 개발자는 자신이 등록한 작업이 어떤 스레드에서 실행될지 알 수 없죠.

Dispatch Queue 사용방법


<aside> 💡 DispatchQueue.{큐종류}({qos 옵션}).{sync/async}{

  //task

}

</aside>

개발자는 큐의 종류, qos 우선순위, sync, async를 설정해서 지정한 작업을 DispatchQueue를 통해 현재 스레드, 혹은 다른 스레드에서 실행되도록 할 수 있습니다.

Dispatch Queue 의 특성


Serial은 큐에 등록된 작업을 한 번에 하나씩 처리하는 것을 의미, 먼저 들어온 작업이 완료되어야 큐에 있는 다음 작업을 시작하기 때문

Untitled

반면 concurrent queue는 동시에 여러작업이 수행될 수 있게 합니다. 현재 작업이 끝나지 않아도 다음 작업을 다른 스레드에 할당해서 동시에 여러작업이 실행되도록 합니다.

Dispatch Queue 사용 시 3가지 종류의 Queue