[swift] Swift GCD에서 사용되는 큐의 종류

Swift Grand Central Dispatch(GCD)는 멀티코어 처리를 위한 저수준 API이며, 병렬성을 향상시키고 비동기적인 작업을 관리하는 데 사용됩니다. GCD에서 다양한 종류의 큐를 사용할 수 있으며, 이를 효율적으로 활용하여 작업을 관리할 수 있습니다. 이 글에서는 Swift GCD에서 사용되는 주요 큐의 종류에 대해 알아보겠습니다.

메인 큐 (Main Queue)

메인 큐는 UI 업데이트나 사용자 이벤트와 같은 주요 작업들을 처리하기 위한 큐입니다. 메인 큐는 UI 스레드에서만 동작하며, 주로 UI 업데이트를 관리하기 위해 사용됩니다.

글로벌 큐 (Global Queues)

글로벌 큐는 시스템 전역에서 사용 가능한 큐이며, 멀티코어 환경에서 작업을 분산하는 데 사용됩니다. 글로벌 큐는 우선순위에 따라서도 다시 세분화되며, 다음과 같은 큐의 품질 클래스(Quality of Service)를 제공합니다.

사용자 정의 큐 (Custom Queue)

사용자 정의 큐는 사용자가 직접 생성하여 사용할 수 있는 큐로, 주로 특정 작업을 처리하기 위해 사용됩니다. 예를 들어, 특정 태스크를 묶어 병렬로 실행하거나, 특정 태스크를 순차적으로 실행하기 위해 사용될 수 있습니다.

Serial vs Concurrent Queue

위에서 언급된 큐들은 시리얼 큐와 컨커런트 큐로 구분될 수 있습니다. 시리얼 큐는 한 번에 하나의 작업만을 처리하는 반면에, 컨커런트 큐는 여러 작업을 동시에 처리할 수 있습니다. 큐를 생성할 때 해당 큐가 시리얼인지 컨커런트인지를 명시하여 원하는 동작을 수행할 수 있습니다.

Swift GCD에서 제공하는 다양한 큐를 활용하여 적절한 작업을 적절한 시기에 효율적으로 처리할 수 있습니다.

참고: Apple Developer Documentation - Grand Central Dispatch (GCD)